TEMA Dtunnel


SUBMITTED BY: Siniclrj

DATE: Aug. 17, 2023, 8:24 p.m.

UPDATED: June 20, 2024, 5:57 p.m.

FORMAT: Text only

SIZE: 103.0 kB

HITS: 986

  1. <!DOCTYPE html>
  2. <html lang="pt-br">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>5777879193 - @PoggVpn</title>
  8. <style>
  9. :root {
  10. font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  11. line-height: 1.5;
  12. font-weight: 400;
  13. font-synthesis: none;
  14. text-rendering: optimizeLegibility;
  15. -webkit-font-smoothing: antialiased;
  16. -moz-osx-font-smoothing: grayscale;
  17. text-size-adjust: 100%;
  18. -webkit-text-size-adjust: 100%;
  19. /*-------->MENU<--------*/
  20. /*IMAGEM DE FUNDO PRINCIPAL*/
  21. --imagem-de-fundo: url('https://bafkreighln2izjgvidrzifz2qrk2hk5ww7gt4m7kw3ffd3tfzoknr7hdyu.ipfs.w3s.link');
  22. /*CONTAINER DE STATUS VPN*/
  23. --cor-de-fundo-do-container-de-status-da-vpn: rgba(161, 42, 246, 0.1);
  24. --cor-do-icone-do-container-de-status-da-vpn: rgba(255, 255, 255, 1);
  25. --cor-do-texto-do-container-de-status-da-vpn: rgba(255, 255, 255, 1);
  26. /*CONTAINER DE SELECIONAR OPERADORA*/
  27. --cor-de-fundo-do-campo-de-selecionar-operadora: rgba(161, 42, 246, 0.5);
  28. --borda-do-container-de-selecionar-operadora: rgba(68, 60, 119, 1);
  29. --cor-do-icone-de-chip-do-campo-de-selecionar-operadora: rgba(255, 255, 255, 1);
  30. --cor-do-texto-do-campo-de-selecionar-operadora: rgba(255, 255, 255, 1);
  31. /*CONTAINER PRINCIPAL*/
  32. --cor-de-fundo-do-container-principal: rgba(161, 42, 246, 0.5);
  33. --borda-do-container-principal: rgba(68, 60, 119, 1);
  34. --borda-do-header-do-container-principal: rgba(68, 60, 119, 1);
  35. --cor-de-fundo-dos-input-do-container-principal: rgba(187, 127, 243, 0.2);
  36. --cor-da-borda-dos-input-do-container-principal: rgba(68, 60, 119, 1);
  37. --cor-dos-icones-dos-input-do-container-principal: rgba(255, 255, 255, 1);
  38. --cor-do-texto-dos-input-do-container-principal: rgba(255, 255, 255, 1);
  39. --cor-do-texto-dos-input-do-container-principal-quando-nao-ta-selecionado: rgba(
  40. 255,
  41. 255,
  42. 255,
  43. 1
  44. );
  45. --cor-de-fundo-do-botao-do-container-principal: rgba(187, 127, 243, 0.2);
  46. --cor-da-borda-do-botao-do-container-principal: rgba(68, 60, 119, 1);
  47. --cor-do-icone-do-botao-do-container-principal: rgba(255, 255, 255, 1);
  48. --cor-do-texto-do-botao-do-container-principal: rgba(255, 255, 255, 1);
  49. /*CONTAINER DOS CONTROLES*/
  50. --cor-de-fundo-do-container-de-controles: rgba(161, 42, 246, 0.5);
  51. --cor-da-borda-do-container-de-controles: rgba(68, 60, 119, 1);
  52. --cor-de-fundo-do-botao-do-container-de-controles: rgba(104, 3, 202, 1);
  53. --cor-da-borda-do-botao-do-container-de-controles: rgba(68, 60, 119, 1);
  54. --cor-do-icone-do-botao-do-container-de-controles: rgba(255, 255, 255, 1);
  55. --cor-de-fundo-do-botao-do-meio-do-container-de-controles: rgba(68, 60, 119, 1);
  56. --cor-da-borda-do-botao-do-meio-do-container-de-controles: rgba(161, 42, 246, 0.5);
  57. /* CONTAINER DAS CONFIGURAÇÕES */
  58. --cor-de-fundo-do-container-da-lista-de-configuracoes: rgba(161, 42, 246, 0.4);
  59. --cor-da-borda-do-container-da-lista-de-configuracoes: rgba(68, 60, 119, 0.5);
  60. --cor-de-fundo-do-header-do-container-da-lista-de-configuracoes: rgba(187, 127, 243, 1);
  61. --cor-do-icone-de-fechar-do-header-do-container-da-lista-de-configuracoes: rgba(
  62. 255,
  63. 255,
  64. 255,
  65. 1
  66. );
  67. --cor-de-fundo-do-container-da-lista-de-categorias-de-configuracoes: transparent;
  68. --cor-de-fundo-da-categoria: transparent;
  69. --cor-de-fundo-do-header-da-categoria: rgba(187, 127, 243, 1);
  70. --cor-da-borda-do-header-da-categoria: rgba(127, 71, 203, 1);
  71. --cor-do-text-do-header-da-categoria: rgba(255, 255, 255, 1);
  72. --cor-do-icone-do-header-da-categoria: rgba(255, 255, 255, 1);
  73. --cor-de-fundo-da-lista-de-configuracoes: transparent;
  74. --cor-de-fundo-do-item-da-configuracao: rgba(187, 127, 243, 1);
  75. --cor-do-texto-do-titulo-do-item-da-configuracao: rgba(255, 255, 255, 1);
  76. --cor-do-texto-da-descricao-do-item-da-configuracao: rgba(255, 255, 255, 1);
  77. --cor-do-modo-da-conexao-do-item-da-configuracao: rgba(255, 255, 255, 1);
  78. /* CHECKUSER PRINCIPAL */
  79. --cor-de-fundo-do-container-do-checkuser-principal: rgba(161, 42, 246, 0.8);
  80. --cor-de-fundo-do-header-do-container-do-checkuser-principal: rgba(187, 127, 243, 1);
  81. --cor-do-icone-do-header-do-container-do-checkuser-principal: rgba(255, 255, 255, 1);
  82. --cor-da-borda-do-icone-de-sucesso: rgba(255, 255, 255, 1);
  83. --cor-do-icone-de-sucesso: rgba(255, 255, 255, 1);
  84. --cor-de-fundo-da-lista-de-dados-de-login: transparent;
  85. --cor-de-fundo-dos-dados-de-login: rgba(187, 127, 243, 1);
  86. --cor-dos-icones-dos-dados-de-login: rgba(255, 255, 255, 1);
  87. --cor-dos-textos-dos-dados-de-login: rgba(255, 255, 255, 1);
  88. /* CONTAINER DE CARREGAMENTO */
  89. --cor-de-fundo-do-container-de-carregamento: rgba(161, 42, 246, 0.8);
  90. --cor-de-fundo-do-header-do-container-de-carregamento: rgba(187, 127, 243, 1);
  91. --cor-do-icone-do-header-do-container-de-carregamento: rgba(255, 255, 255, 1);
  92. /* CONTAINER DE PERFIL DO USUÁRIO */
  93. --cor-de-fundo-do-container-do-perfil-do-usuario: rgba(161, 42, 246, 0.8);
  94. --cor-de-fundo-do-header-do-container-do-perfil-do-usuario: transparent;
  95. --cor-da-borda-do-header-do-container-do-perfil-do-usuario: rgba(187, 127, 243, 1);
  96. --cor-de-fundo-da-lista-do-container-do-perfil-do-usuario: transparent;
  97. --cor-de-fundo-dos-items-do-container-do-perfil-do-usuario: rgba(187, 127, 243, 1);
  98. --cor-de-fundo-dos-icones-do-container-do-perfil-do-usuario: rgba(187, 127, 243, 1);
  99. --cor-da-borda-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(
  100. 255,
  101. 255,
  102. 255,
  103. 1
  104. );
  105. --cor-do-icone-de-dentro-do-close-do-container-do-perfil-do-usuario: rgba(255, 255, 255, 1);
  106. --cor-do-titulo-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(
  107. 255,
  108. 255,
  109. 255,
  110. 1
  111. );
  112. --cor-da-descricao-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario: rgba(
  113. 255,
  114. 255,
  115. 255,
  116. 1
  117. );
  118. --cor-de-fundo-dos-termos-do-container-do-perfil-do-usuario: rgba(11, 26, 59, 0.5);
  119. /* CONTAINER DE FERRAMENTAS */
  120. --cor-da-borda-do-titulo-do-container-de-ferramentas: rgba(255, 255, 255, 1);
  121. --cor-do-texto-do-titulo-do-container-de-ferramentas: rgba(255, 255, 255, 1);
  122. --cor-da-borda-dos-botoes-do-container-de-ferramentas: #cc60ff;
  123. --cor-de-fundo-dos-botoes-do-container-de-ferramentas: rgba(161, 42, 246, 0.5);
  124. --cor-da-sombra-dos-botoes-do-container-de-ferramentas: rgba(0, 0, 0, 0.25);
  125. --cor-dos-icones-dos-botoes-do-container-de-ferramentas: rgba(255, 255, 255, 1);
  126. --cor-dos-textos-dos-botoes-do-container-de-ferramentas: rgba(255, 255, 255, 1);
  127. /* MODAL SPEEDTEST */
  128. --cor-do-header-do-modal-do-speedtest: rgba(187, 127, 243, 1);
  129. --cor-de-fundo-do-modal-do-speedtest: rgba(187, 127, 243, 1);
  130. --cor-do-icone-do-header-do-modal-do-speedtest: rgba(255, 255, 255, 1);
  131. /* MODAL ERROR */
  132. --cor-do-header-do-modal-de-error: rgba(158, 36, 36, 0.8);
  133. --cor-de-fundo-do-modal-de-error: rgba(53, 46, 57, 0.9);
  134. --cor-do-icone-do-header-do-modal-de-error: rgba(255, 255, 255, 1);
  135. /* MODAL LOGS */
  136. --cor-do-header-do-modal-de-logs: rgba(187, 127, 243, 1);
  137. --cor-de-fundo-do-modal-de-logs: rgba(53, 46, 57, 0.9);
  138. --cor-do-texto-do-registro-do-modal-de-logs: rgba(255, 255, 255, 1);
  139. }
  140. * {
  141. margin: 0;
  142. padding: 0;
  143. box-sizing: border-box;
  144. }
  145. html,
  146. body,
  147. main {
  148. width: 100%;
  149. height: 100%;
  150. }
  151. body {
  152. background: var(--imagem-de-fundo);
  153. background-repeat: no-repeat;
  154. background-position: center;
  155. background-size: cover;
  156. }
  157. main {
  158. max-width: 500px;
  159. display: flex;
  160. flex-direction: column;
  161. align-items: center;
  162. gap: 10px;
  163. margin: auto;
  164. position: relative;
  165. overflow: hidden;
  166. }
  167. main section.vpnStatus {
  168. width: auto;
  169. height: 40px;
  170. display: flex;
  171. justify-content: center;
  172. align-items: center;
  173. gap: 5px;
  174. margin-top: 5%;
  175. padding: 0px 10px;
  176. border-radius: 20px;
  177. background-color: var(--cor-de-fundo-do-container-de-status-da-vpn);
  178. }
  179. main section.vpnStatus svg {
  180. color: var(--cor-do-icone-do-container-de-status-da-vpn);
  181. }
  182. main section.vpnStatus span {
  183. color: var(--cor-do-texto-do-container-de-status-da-vpn);
  184. }
  185. section.local-ip {
  186. width: auto;
  187. height: 40px;
  188. display: flex;
  189. justify-content: center;
  190. align-items: center;
  191. gap: 5px;
  192. margin-top: 5%;
  193. padding: 0px 10px;
  194. border-radius: 20px;
  195. background-color: var(--cor-de-fundo-do-container-de-status-da-vpn);
  196. }
  197. section.local-ip svg {
  198. color: var(--cor-do-icone-do-container-de-status-da-vpn);
  199. }
  200. section.local-ip span {
  201. text-align: center;
  202. color: var(--cor-do-texto-do-container-de-status-da-vpn);
  203. }
  204. main section.home {
  205. width: 100%;
  206. max-width: 500px;
  207. height: auto;
  208. display: flex;
  209. flex-direction: column;
  210. align-items: center;
  211. gap: 10px;
  212. position: relative;
  213. padding: 0px 10px;
  214. }
  215. main section.home header {
  216. width: 100%;
  217. height: auto;
  218. display: flex;
  219. justify-content: center;
  220. align-items: center;
  221. }
  222. main section.home header img.logo {
  223. width: 60%;
  224. max-width: 100px;
  225. height: auto;
  226. }
  227. main section.home div.carrierSelector {
  228. width: 100%;
  229. height: 50px;
  230. display: flex;
  231. align-items: center;
  232. justify-content: center;
  233. gap: 20px;
  234. padding: 0px 10px;
  235. border: 1px solid var(--borda-do-container-de-selecionar-operadora);
  236. border-radius: 10px;
  237. overflow: hidden;
  238. background-color: var(--cor-de-fundo-do-campo-de-selecionar-operadora);
  239. }
  240. main section.home div.carrierSelector svg {
  241. width: 20px;
  242. height: 20px;
  243. color: var(--cor-do-icone-de-chip-do-campo-de-selecionar-operadora);
  244. }
  245. main section.home div.carrierSelector span {
  246. width: 100%;
  247. max-width: 100%;
  248. height: 100%;
  249. max-height: 100%;
  250. display: flex;
  251. justify-content: center;
  252. align-items: center;
  253. color: var(--cor-do-texto-do-campo-de-selecionar-operadora);
  254. overflow: none;
  255. }
  256. main section.home div.container {
  257. width: 100%;
  258. height: 200px;
  259. display: flex;
  260. flex-direction: column;
  261. align-items: center;
  262. justify-content: center;
  263. border: 1px solid var(--borda-do-container-principal);
  264. border-radius: 10px;
  265. background: var(--cor-de-fundo-do-container-principal);
  266. }
  267. main section.home div.container header {
  268. width: 100%;
  269. height: 50px;
  270. display: flex;
  271. align-items: center;
  272. padding: 0px 5px;
  273. border-bottom: 1px solid var(--borda-do-header-do-container-principal);
  274. overflow: hidden;
  275. }
  276. main section.home div.container form {
  277. width: 100%;
  278. height: auto;
  279. display: flex;
  280. flex-direction: column;
  281. align-items: center;
  282. gap: 10px;
  283. padding: 10px;
  284. }
  285. main section.home div.container form div {
  286. width: 90%;
  287. height: 40px;
  288. display: flex;
  289. align-items: center;
  290. position: relative;
  291. padding: 0px 0px 0px 5px;
  292. border-radius: 20px;
  293. border: 1px solid var(--cor-da-borda-dos-input-do-container-principal);
  294. overflow: hidden;
  295. background-color: var(--cor-de-fundo-dos-input-do-container-principal);
  296. }
  297. main section.home div.container form div svg {
  298. width: 40px;
  299. height: 40px;
  300. padding: 10px;
  301. color: var(--cor-dos-icones-dos-input-do-container-principal);
  302. }
  303. main section.home div.container form div input {
  304. width: calc(100% - 40px);
  305. height: 100%;
  306. border: 0;
  307. outline: none;
  308. color: var(--cor-do-texto-dos-input-do-container-principal);
  309. background-color: transparent;
  310. }
  311. main section.home div.container form div svg.eye {
  312. position: absolute;
  313. right: 0;
  314. }
  315. .eye-none {
  316. display: none;
  317. }
  318. .eye-block {
  319. display: block;
  320. }
  321. main section.home div.container form div input::placeholder {
  322. color: var(--cor-do-texto-dos-input-do-container-principal-quando-nao-ta-selecionado);
  323. }
  324. main section.home div.container form div.buttons {
  325. height: 40px;
  326. display: flex;
  327. justify-content: center;
  328. align-items: center;
  329. gap: 10px;
  330. border: 0;
  331. padding-left: 3px;
  332. background: transparent;
  333. }
  334. main section.home div.container form div button#startStopVpn {
  335. flex: 1;
  336. height: 40px;
  337. display: flex;
  338. align-items: center;
  339. justify-content: center;
  340. gap: 10px;
  341. padding: 10px;
  342. border: 1px solid var(--cor-da-borda-do-botao-do-container-principal);
  343. border-radius: 20px;
  344. background: var(--cor-de-fundo-do-botao-do-container-principal);
  345. }
  346. main section.home div.container form div button#buttonLogs {
  347. width: 40px;
  348. height: 40px;
  349. display: flex;
  350. justify-content: center;
  351. align-items: center;
  352. border: 1px solid var(--cor-da-borda-do-botao-do-container-principal);
  353. border-radius: 50%;
  354. background: var(--cor-de-fundo-do-botao-do-container-principal);
  355. }
  356. main section.home div.container form button svg {
  357. color: var(--cor-do-icone-do-botao-do-container-principal);
  358. }
  359. main section.home div.container form button span {
  360. color: var(--cor-do-texto-do-botao-do-container-principal);
  361. }
  362. main section.controls {
  363. width: 90%;
  364. height: 50px;
  365. display: flex;
  366. align-items: center;
  367. gap: 15px;
  368. position: absolute;
  369. bottom: 10px;
  370. z-index: 999;
  371. padding: 0px 10px;
  372. border: 1px solid var(--cor-da-borda-do-container-de-controles);
  373. border-radius: 25px;
  374. background: var(--cor-de-fundo-do-container-de-controles);
  375. }
  376. main section.controls button {
  377. width: 40px;
  378. height: 40px;
  379. display: flex;
  380. align-items: center;
  381. justify-content: center;
  382. border: 0px solid var(--cor-da-borda-do-botao-do-container-de-controles);
  383. border-radius: 50%;
  384. background: var(--cor-de-fundo-do-botao-do-container-de-controles);
  385. }
  386. main section.controls button:nth-child(2) {
  387. margin-right: auto;
  388. }
  389. main section.controls button svg {
  390. color: var(--cor-do-icone-do-botao-do-container-de-controles);
  391. }
  392. main section.controls button#backToHome {
  393. width: 60px;
  394. height: 60px;
  395. margin-left: auto;
  396. margin-right: auto;
  397. position: absolute;
  398. top: -50%;
  399. left: 0;
  400. right: 0;
  401. border: 1px solid var(--cor-da-borda-do-botao-do-meio-do-container-de-controles);
  402. background: var(--cor-de-fundo-do-botao-do-meio-do-container-de-controles);
  403. }
  404. main section.controls button#backToHome::before {
  405. width: 60px;
  406. height: 60px;
  407. content: '';
  408. position: absolute;
  409. top: -6px;
  410. left: -6px;
  411. right: 0;
  412. bottom: 0px;
  413. z-index: 2;
  414. margin-left: auto;
  415. margin-right: auto;
  416. border: 5px solid var(--cor-da-borda-do-botao-do-meio-do-container-de-controles);
  417. border-radius: 50%;
  418. }
  419. main section.listOfCarriers {
  420. width: calc(100% - 10px);
  421. height: 70%;
  422. display: flex;
  423. flex-direction: column;
  424. align-items: center;
  425. position: absolute;
  426. top: 13%;
  427. border: 1px solid var(--cor-da-borda-do-container-da-lista-de-configuracoes);
  428. border-radius: 10px;
  429. overflow-y: auto;
  430. opacity: 0;
  431. transform: scale(0);
  432. transform-origin: center;
  433. transition: all 0.3s ease 0.1s;
  434. background: var(--cor-de-fundo-do-container-da-lista-de-configuracoes);
  435. backdrop-filter: blur(10px);
  436. }
  437. main section.listOfCarriers.active {
  438. opacity: 1;
  439. transform: scale(1);
  440. }
  441. main section.listOfCarriers .header-list {
  442. width: 100%;
  443. height: 50px;
  444. display: flex;
  445. align-items: center;
  446. padding: 10px;
  447. border: 1px solid var();
  448. background: var(--cor-de-fundo-do-header-do-container-da-lista-de-configuracoes);
  449. }
  450. main section.listOfCarriers header svg.bi-x-lg {
  451. margin: 0px 0px 0px auto;
  452. color: var(--cor-do-icone-de-fechar-do-header-do-container-da-lista-de-configuracoes);
  453. }
  454. main section.listOfCarriers section.list-container {
  455. width: 100%;
  456. height: 100%;
  457. display: flex;
  458. flex-direction: column;
  459. gap: 20px;
  460. margin: 10px 0px;
  461. padding: 0px 10px;
  462. overflow-y: auto;
  463. background: var(--cor-de-fundo-do-container-da-lista-de-categorias-de-configuracoes);
  464. }
  465. main section.listOfCarriers section.list-container div.category {
  466. width: 100%;
  467. height: auto;
  468. display: flex;
  469. flex-direction: column;
  470. gap: 10px;
  471. border-radius: 5px;
  472. background: var(--cor-de-fundo-da-categoria);
  473. }
  474. main section.listOfCarriers section.list-container div.category header {
  475. width: 100%;
  476. height: 50px;
  477. min-height: 50px;
  478. display: flex;
  479. justify-content: space-between;
  480. align-items: center;
  481. padding: 0px 5px;
  482. border-bottom: 1px solid var(--cor-da-borda-do-header-da-categoria);
  483. border-radius: 5px;
  484. background: var(--cor-de-fundo-do-header-da-categoria);
  485. }
  486. main section.listOfCarriers section.list-container div.category header h1 {
  487. color: var(--cor-do-text-do-header-da-categoria);
  488. font-weight: 400;
  489. font-size: 1rem;
  490. }
  491. main section.listOfCarriers section.list-container div.category header svg {
  492. color: var(--cor-do-icone-do-header-da-categoria);
  493. transition: all 0.3s ease 0.3s;
  494. }
  495. main section.listOfCarriers section.list-container div.category ul.configs {
  496. width: 100%;
  497. max-height: 0px;
  498. display: flex;
  499. flex-direction: column;
  500. gap: 10px;
  501. overflow-y: auto;
  502. overflow-x: hidden;
  503. background: var(--cor-de-fundo-da-lista-de-configuracoes);
  504. transition: all 0.3s ease 0.3s;
  505. }
  506. main section.listOfCarriers section.list-container div.category ul.configs li {
  507. width: 100%;
  508. height: 60px;
  509. display: flex;
  510. align-items: center;
  511. gap: 3px;
  512. padding: 5px;
  513. border-radius: 5px;
  514. background: var(--cor-de-fundo-do-item-da-configuracao);
  515. }
  516. main section.listOfCarriers section.list-container div.category ul.configs li div.logo {
  517. width: auto;
  518. height: 100%;
  519. display: flex;
  520. justify-content: center;
  521. align-items: center;
  522. }
  523. main section.listOfCarriers section.list-container div.category ul.configs li div.logo img {
  524. width: 40px;
  525. height: auto;
  526. }
  527. main
  528. section.listOfCarriers
  529. section.list-container
  530. div.category
  531. ul.configs
  532. li
  533. div.description {
  534. width: 150px;
  535. height: 100%;
  536. display: flex;
  537. flex-direction: column;
  538. align-items: center;
  539. justify-content: center;
  540. justify-items: center;
  541. align-content: center;
  542. overflow: hidden;
  543. }
  544. main
  545. section.listOfCarriers
  546. section.list-container
  547. div.category
  548. ul.configs
  549. li
  550. div.description
  551. h1 {
  552. width: 100%;
  553. height: 30px;
  554. display: flex;
  555. justify-content: center;
  556. color: var(--cor-do-texto-do-titulo-do-item-da-configuracao);
  557. font-size: 0.6rem;
  558. font-weight: 400;
  559. white-space: nowrap;
  560. overflow: hidden;
  561. text-overflow: ellipsis;
  562. }
  563. main
  564. section.listOfCarriers
  565. section.list-container
  566. div.category
  567. ul.configs
  568. li
  569. div.description
  570. p {
  571. width: 100%;
  572. height: 30px;
  573. display: flex;
  574. justify-content: flex-end;
  575. align-items: end;
  576. color: var(--cor-do-texto-da-descricao-do-item-da-configuracao);
  577. font-size: 0.6rem;
  578. white-space: nowrap;
  579. overflow: hidden;
  580. text-overflow: ellipsis;
  581. }
  582. main section.listOfCarriers section.list-container div.category ul.configs li div.mode {
  583. width: 50px;
  584. height: 100%;
  585. margin-left: auto;
  586. display: flex;
  587. justify-content: flex-end;
  588. align-items: end;
  589. }
  590. main section.listOfCarriers section.list-container div.category ul.configs li div.mode p {
  591. color: var(--cor-do-modo-da-conexao-do-item-da-configuracao);
  592. font-size: 0.6rem;
  593. }
  594. section.main-checkuser {
  595. width: 95%;
  596. height: 70%;
  597. position: absolute;
  598. top: 8%;
  599. margin: auto;
  600. border-radius: 5px;
  601. overflow: hidden;
  602. background: var(--cor-de-fundo-do-container-do-checkuser-principal);
  603. opacity: 0;
  604. transform: scale(0);
  605. transform-origin: center;
  606. transition: all 0.3s ease 0.1s;
  607. }
  608. section.main-checkuser.show {
  609. opacity: 1;
  610. transform: scale(1);
  611. }
  612. @media (min-width: 320px) {
  613. section.main-checkuser {
  614. height: 55%;
  615. top: 50%;
  616. bottom: 50%;
  617. }
  618. }
  619. section.main-checkuser header {
  620. width: 100%;
  621. height: 10%;
  622. max-height: 50px;
  623. display: flex;
  624. align-items: center;
  625. justify-content: flex-end;
  626. padding: 10px;
  627. background: var(--cor-de-fundo-do-header-do-container-do-checkuser-principal);
  628. }
  629. section.main-checkuser header svg {
  630. color: var(--cor-do-icone-do-header-do-container-do-checkuser-principal);
  631. }
  632. section.main-checkuser section.container-content-checkuser {
  633. width: 100%;
  634. height: 100%;
  635. display: flex;
  636. flex-direction: column;
  637. align-items: center;
  638. }
  639. section.main-checkuser section.container-content-checkuser div.connected-success {
  640. width: 50%;
  641. max-width: 100px;
  642. height: 50%;
  643. max-height: 100px;
  644. display: flex;
  645. justify-content: center;
  646. align-items: center;
  647. margin-top: 20px;
  648. margin-bottom: 20px;
  649. border: 1px solid var(--cor-da-borda-do-icone-de-sucesso);
  650. border-radius: 50%;
  651. animation: pulse 1s infinite;
  652. }
  653. section.main-checkuser section.container-content-checkuser div.connected-success svg {
  654. width: 50%;
  655. height: 50%;
  656. color: var(--cor-do-icone-de-sucesso);
  657. }
  658. @keyframes pulse {
  659. 0% {
  660. box-shadow: 0 0 0 0 rgba(0, 255, 0, 0.7);
  661. }
  662. 70% {
  663. box-shadow: 0 0 0 20px rgba(0, 255, 0, 0);
  664. }
  665. 100% {
  666. box-shadow: 0 0 0 0 rgba(0, 255, 0, 0);
  667. }
  668. }
  669. section.main-checkuser section.container-content-checkuser ul {
  670. width: 100%;
  671. height: auto;
  672. display: flex;
  673. flex-direction: column;
  674. justify-content: center;
  675. align-items: center;
  676. gap: 10px;
  677. padding: 0px 10px;
  678. list-style: none;
  679. }
  680. section.main-checkuser section.container-content-checkuser ul li {
  681. width: 100%;
  682. height: 50px;
  683. display: flex;
  684. align-items: center;
  685. padding: 0px 10px;
  686. border-radius: 5px;
  687. background: var(--cor-de-fundo-dos-dados-de-login);
  688. }
  689. section.main-checkuser section.container-content-checkuser ul li svg {
  690. margin-right: 10px;
  691. color: var(--cor-dos-icones-dos-dados-de-login);
  692. }
  693. section.main-checkuser section.container-content-checkuser ul li span {
  694. color: var(--cor-dos-textos-dos-dados-de-login);
  695. }
  696. section.loading {
  697. width: 95%;
  698. height: auto;
  699. position: absolute;
  700. top: 50%;
  701. left: 0;
  702. right: 0;
  703. transform: translateY(-50%);
  704. margin: auto;
  705. border-radius: 5px;
  706. overflow-x: hidden;
  707. opacity: 0;
  708. transform: scale(0);
  709. transform-origin: center;
  710. transition: all 0.3s ease 0.1s;
  711. background: var(--cor-de-fundo-do-container-de-carregamento);
  712. }
  713. section.loading.show {
  714. opacity: 1;
  715. transform: scale(1);
  716. }
  717. section.loading header {
  718. width: 100%;
  719. height: 10%;
  720. max-height: 50px;
  721. display: flex;
  722. align-items: center;
  723. justify-content: flex-end;
  724. padding: 10px;
  725. background: var(--cor-de-fundo-do-header-do-container-de-carregamento);
  726. }
  727. section.loading header svg {
  728. color: var(--cor-do-icone-do-header-do-container-de-carregamento);
  729. }
  730. section.loading div.loading-container {
  731. width: 100px;
  732. height: 100px;
  733. margin: 30px auto;
  734. border: 4px solid #ffffff;
  735. border-top: 4px solid transparent;
  736. border-radius: 50%;
  737. animation: spin 0.5s linear infinite;
  738. }
  739. @keyframes spin {
  740. 0% {
  741. transform: rotate(0deg);
  742. }
  743. 100% {
  744. transform: rotate(360deg);
  745. }
  746. }
  747. section.profile-checkuser {
  748. width: 100%;
  749. height: 100%;
  750. display: flex;
  751. flex-direction: column;
  752. position: absolute;
  753. top: 0;
  754. left: 100%;
  755. right: 0;
  756. bottom: 0;
  757. background: var(--imagem-de-fundo);
  758. background-repeat: no-repeat;
  759. background-position: center;
  760. background-size: cover;
  761. transition: transform 0.5s ease-in-out;
  762. }
  763. section.profile-checkuser.show {
  764. transform: translateX(-100%);
  765. }
  766. section.profile-checkuser header,
  767. section.profile-checkuser section.terms header {
  768. width: 95%;
  769. height: 40px;
  770. display: flex;
  771. align-items: center;
  772. margin: 0 auto;
  773. background: var(--cor-de-fundo-do-header-do-container-do-perfil-do-usuario);
  774. }
  775. section.profile-checkuser header h1,
  776. section.profile-checkuser section.terms header h1 {
  777. width: 95%;
  778. color: #ffffff;
  779. font-weight: 400;
  780. font-size: 1rem;
  781. text-align: center;
  782. margin: 0 auto;
  783. border-bottom: 4px solid var(--cor-da-borda-do-header-do-container-do-perfil-do-usuario);
  784. }
  785. section.profile-checkuser div.not-view-user {
  786. display: none;
  787. flex-direction: column;
  788. align-items: center;
  789. gap: 15px;
  790. padding: 15px 10px;
  791. }
  792. section.profile-checkuser div.not-view-user.show {
  793. display: flex;
  794. }
  795. section.profile-checkuser div.not-view-user div.circle {
  796. width: 100px;
  797. height: 100px;
  798. display: flex;
  799. justify-content: center;
  800. align-items: center;
  801. border: 2px solid var(--cor-da-borda-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario);
  802. border-radius: 50%;
  803. }
  804. section.profile-checkuser div.not-view-user div.circle svg {
  805. width: 50%;
  806. height: 50%;
  807. color: var(--cor-do-icone-de-dentro-do-close-do-container-do-perfil-do-usuario);
  808. }
  809. section.profile-checkuser div.not-view-user h2 {
  810. width: 100%;
  811. color: var(--cor-do-titulo-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario);
  812. text-align: center;
  813. font-size: 1rem;
  814. }
  815. section.profile-checkuser div.not-view-user p {
  816. color: var(--cor-da-descricao-de-nao-ver-o-usuario-do-container-do-perfil-do-usuario);
  817. text-align: center;
  818. font-size: 0.8rem;
  819. }
  820. section.profile-checkuser ul {
  821. width: 100%;
  822. height: auto;
  823. display: none;
  824. flex-direction: column;
  825. gap: 20px;
  826. list-style: none;
  827. padding: 10px;
  828. background: var(--cor-de-fundo-da-lista-do-container-do-perfil-do-usuario);
  829. }
  830. section.profile-checkuser ul.show {
  831. display: grid;
  832. }
  833. section.profile-checkuser ul li {
  834. width: 95%;
  835. height: 40px;
  836. display: grid;
  837. align-items: center;
  838. margin: 0px auto;
  839. position: relative;
  840. border-radius: 20px;
  841. background: var(--cor-de-fundo-dos-items-do-container-do-perfil-do-usuario);
  842. }
  843. section.profile-checkuser ul li svg {
  844. width: 50px;
  845. height: 50px;
  846. position: absolute;
  847. left: -10px;
  848. padding: 10px;
  849. border-radius: 50%;
  850. box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
  851. color: #ffffff;
  852. background: var(--cor-de-fundo-dos-icones-do-container-do-perfil-do-usuario);
  853. }
  854. section.profile-checkuser ul li svg.even {
  855. box-shadow: -1px 1px 2px rgba(0, 0, 0, 0.2);
  856. position: absolute;
  857. left: initial;
  858. right: -10px;
  859. }
  860. section.profile-checkuser ul li svg path {
  861. transform: scale(0.6);
  862. transform-origin: center;
  863. }
  864. section.profile-checkuser ul li span {
  865. margin-left: 45px;
  866. color: #ffffff;
  867. font-size: 0.8rem;
  868. }
  869. section.profile-checkuser ul li span.even {
  870. margin-left: auto;
  871. margin-right: 45px;
  872. }
  873. section.profile-checkuser section.terms {
  874. display: flex;
  875. flex-direction: column;
  876. width: 100%;
  877. height: auto;
  878. margin-top: 5%;
  879. }
  880. section.profile-checkuser section.terms p {
  881. width: 95%;
  882. height: auto;
  883. max-height: 210px;
  884. margin: 0 auto;
  885. padding: 10px;
  886. border-radius: 5px;
  887. overflow-y: auto;
  888. color: #ffffff;
  889. text-align: center;
  890. background: var(--cor-de-fundo-dos-termos-do-container-do-perfil-do-usuario);
  891. }
  892. @media (min-height: 700px) {
  893. section.profile-checkuser section.terms p {
  894. max-height: 350px;
  895. }
  896. }
  897. section.tools {
  898. width: 100%;
  899. height: 100%;
  900. display: flex;
  901. flex-direction: column;
  902. position: absolute;
  903. top: 0;
  904. left: 100%;
  905. right: 0;
  906. background: var(--imagem-de-fundo);
  907. background-repeat: no-repeat;
  908. background-position: center;
  909. background-size: cover;
  910. transition: transform 0.5s ease-in-out;
  911. }
  912. section.tools.show {
  913. transform: translateX(-100%);
  914. }
  915. section.tools header {
  916. width: 100%;
  917. height: auto;
  918. display: flex;
  919. justify-content: center;
  920. }
  921. section.tools header h1 {
  922. width: 90%;
  923. height: auto;
  924. padding: 10px;
  925. border-bottom: 3px solid var(--cor-da-borda-do-titulo-do-container-de-ferramentas);
  926. text-shadow: 0px 4px 4px var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);
  927. color: var(--cor-do-texto-do-titulo-do-container-de-ferramentas);
  928. font-weight: bold;
  929. font-size: 1rem;
  930. text-align: center;
  931. }
  932. section.tools section.container-tools {
  933. width: 100%;
  934. height: auto;
  935. display: flex;
  936. flex-direction: column;
  937. gap: 20px;
  938. margin: 40px 0px 0px 0px;
  939. padding: 0px 10px;
  940. }
  941. section.tools section.container-tools button {
  942. width: 100%;
  943. height: 50px;
  944. display: flex;
  945. align-items: center;
  946. gap: 9.5px;
  947. padding: 0px 16px;
  948. border: 1px solid var(--cor-da-borda-dos-botoes-do-container-de-ferramentas);
  949. border-radius: 25px;
  950. box-shadow: 0px 4px 4px var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);
  951. background: var(--cor-de-fundo-dos-botoes-do-container-de-ferramentas);
  952. }
  953. section.tools section.container-tools button svg {
  954. width: 20px;
  955. height: 20px;
  956. color: var(--cor-dos-icones-dos-botoes-do-container-de-ferramentas);
  957. }
  958. section.tools section.container-tools button span {
  959. color: var(--cor-dos-textos-dos-botoes-do-container-de-ferramentas);
  960. }
  961. section.modal-speedtest,
  962. section.modal-error-alert {
  963. width: 95%;
  964. max-width: 450px;
  965. height: 50%;
  966. position: absolute;
  967. top: 25%;
  968. transform: translate(-50%, -50%);
  969. z-index: 2;
  970. display: flex;
  971. flex-direction: column;
  972. border-radius: 5px;
  973. overflow-x: hidden;
  974. opacity: 0;
  975. transform: scale(0);
  976. transform-origin: center;
  977. transition: all 0.3s ease 0.1s;
  978. }
  979. section.modal-speedtest.show,
  980. section.modal-error-alert.show,
  981. section.modal-logs.show {
  982. opacity: 1;
  983. transform: scale(1);
  984. }
  985. section.modal-speedtest header,
  986. section.modal-error-alert header {
  987. width: 100%;
  988. height: 40px;
  989. display: flex;
  990. align-items: center;
  991. padding: 0px 10px;
  992. }
  993. section.modal-speedtest header {
  994. background-color: var(--cor-do-header-do-modal-do-speedtest);
  995. }
  996. section.modal-speedtest header h1,
  997. section.modal-error-alert header h1 {
  998. flex: 1;
  999. display: flex;
  1000. justify-content: center;
  1001. align-items: center;
  1002. color: #ffffff;
  1003. font-family: 'Roboto', sans-serif;
  1004. font-weight: bolder;
  1005. }
  1006. section.modal-speedtest header svg,
  1007. section.modal-error-alert header svg {
  1008. margin-left: auto;
  1009. color: var(--cor-do-icone-do-header-do-modal-do-speedtest);
  1010. }
  1011. section.modal-speedtest section,
  1012. section.modal-error-alert section {
  1013. width: 100%;
  1014. height: calc(100% - 40px);
  1015. position: relative;
  1016. display: flex;
  1017. flex-direction: column;
  1018. justify-content: center;
  1019. align-items: center;
  1020. }
  1021. section.modal-speedtest section {
  1022. background: var(--cor-de-fundo-do-modal-do-speedtest);
  1023. }
  1024. section.modal-speedtest section iframe {
  1025. width: 100%;
  1026. height: 100%;
  1027. border: 0;
  1028. overflow: hidden;
  1029. }
  1030. section.modal-error-alert header {
  1031. background: var(--cor-do-header-do-modal-de-error);
  1032. }
  1033. section.modal-error-alert section {
  1034. background: var(--cor-de-fundo-do-modal-de-error);
  1035. }
  1036. section.modal-error-alert section h1 {
  1037. padding: 0px 10px;
  1038. color: #ffffff;
  1039. }
  1040. section.modal-error-alert section p {
  1041. margin-top: 10px;
  1042. padding: 0px 10px;
  1043. color: #ffffff;
  1044. text-align: center;
  1045. }
  1046. section.modal-logs {
  1047. width: 95%;
  1048. max-width: 450px;
  1049. height: auto;
  1050. position: absolute;
  1051. top: 15%;
  1052. transform: translate(-50%, -50%);
  1053. z-index: 2;
  1054. display: flex;
  1055. flex-direction: column;
  1056. border-radius: 5px;
  1057. overflow-x: hidden;
  1058. opacity: 0;
  1059. transform: scale(0);
  1060. transform-origin: center;
  1061. transition: all 0.3s ease 0.1s;
  1062. }
  1063. section.modal-logs header {
  1064. width: 100%;
  1065. height: 40px;
  1066. display: flex;
  1067. align-items: center;
  1068. justify-content: flex-start;
  1069. padding: 0px 10px;
  1070. background: var(--cor-de-fundo-do-modal-de-logs);
  1071. }
  1072. section.modal-logs header h1 {
  1073. font-size: 14px;
  1074. color: #ffffff;
  1075. }
  1076. section.modal-logs p {
  1077. height: 100%;
  1078. /* min-height: 200px;
  1079. max-height: 400px; */
  1080. padding: 10px;
  1081. font-size: 12px;
  1082. text-align: left;
  1083. color: var(--cor-do-texto-do-registro-do-modal-de-logs);
  1084. overflow-y: auto;
  1085. background: var(--cor-de-fundo-do-modal-de-logs);
  1086. }
  1087. section.modal-logs section {
  1088. width: 100%;
  1089. height: auto;
  1090. display: flex;
  1091. align-items: center;
  1092. justify-content: space-between;
  1093. padding: 10px 10px;
  1094. border-top: 3px solid rgba(161, 161, 161, 1);
  1095. background: var(--cor-de-fundo-do-modal-de-logs);
  1096. }
  1097. section.modal-logs section button {
  1098. width: 45%;
  1099. min-width: 115px;
  1100. height: 40px;
  1101. display: flex;
  1102. align-items: center;
  1103. justify-content: center;
  1104. border: 1px solid rgba(97, 97, 97, 1);
  1105. border-radius: 3px;
  1106. color: #ffffff;
  1107. background: rgba(46, 46, 46, 1);
  1108. }
  1109. section.renew-window {
  1110. width: 100%;
  1111. height: 100%;
  1112. display: flex;
  1113. flex-direction: column;
  1114. position: absolute;
  1115. top: 0;
  1116. left: -100%;
  1117. right: 100%;
  1118. background: var(--imagem-de-fundo);
  1119. background-repeat: no-repeat;
  1120. background-position: center;
  1121. background-size: cover;
  1122. transition: transform 0.5s ease-in-out;
  1123. }
  1124. section.renew-window.show {
  1125. transform: translateX(100%);
  1126. }
  1127. section.renew-window header {
  1128. width: 100%;
  1129. height: auto;
  1130. display: flex;
  1131. justify-content: center;
  1132. }
  1133. section.renew-window header h1 {
  1134. width: 90%;
  1135. height: auto;
  1136. padding: 10px;
  1137. border-bottom: 3px solid var(--cor-da-borda-do-titulo-do-container-de-ferramentas);
  1138. text-shadow: 0px 4px 4px var(--cor-da-sombra-dos-botoes-do-container-de-ferramentas);
  1139. color: var(--cor-do-texto-do-titulo-do-container-de-ferramentas);
  1140. font-weight: bold;
  1141. font-size: 1rem;
  1142. text-align: center;
  1143. }
  1144. section.renew-window section {
  1145. width: 100%;
  1146. height: 100%;
  1147. display: flex;
  1148. justify-content: center;
  1149. align-items: center;
  1150. }
  1151. section.renew-window section div {
  1152. width: 90%;
  1153. height: auto;
  1154. display: flex;
  1155. flex-direction: column;
  1156. align-items: center;
  1157. padding: 10px;
  1158. margin: 0px 0px 40px 0px;
  1159. border: 1px solid rgba(219, 142, 255, 1);
  1160. border-radius: 37px;
  1161. background: rgba(161, 42, 246, 0.5);
  1162. }
  1163. section.renew-window section div h1 {
  1164. color: #ffffff;
  1165. }
  1166. section.renew-window section div p {
  1167. width: 100%;
  1168. display: flex;
  1169. justify-content: center;
  1170. align-items: center;
  1171. margin-top: 15%;
  1172. color: #ffffff;
  1173. text-align: center;
  1174. }
  1175. </style>
  1176. </head>
  1177. <body>
  1178. <main>
  1179. <section class="home">
  1180. <header>
  1181. <img
  1182. class="logo"
  1183. src="https://bafkreihrtmmarih3ke6ho2upycwb7wvsr26pqfc22h53cwizduh37heamy.ipfs.w3s.link"
  1184. alt="logo"
  1185. />
  1186. </header>
  1187. <div class="carrierSelector">
  1188. <svg
  1189. xmlns="http://www.w3.org/2000/svg"
  1190. width="16"
  1191. height="16"
  1192. fill="currentColor"
  1193. class="bi bi-sd-card"
  1194. viewBox="0 0 16 16"
  1195. >
  1196. <path
  1197. d="M6.25 3.5a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2z"
  1198. />
  1199. <path
  1200. fill-rule="evenodd"
  1201. d="M5.914 0H12.5A1.5 1.5 0 0 1 14 1.5v13a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 14.5V3.914c0-.398.158-.78.44-1.06L4.853.439A1.5 1.5 0 0 1 5.914 0zM13 1.5a.5.5 0 0 0-.5-.5H5.914a.5.5 0 0 0-.353.146L3.146 3.561A.5.5 0 0 0 3 3.914V14.5a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-13z"
  1202. />
  1203. </svg>
  1204. <span>Selecione uma operadora</span>
  1205. </div>
  1206. <div class="container">
  1207. <form>
  1208. <div>
  1209. <svg
  1210. xmlns="http://www.w3.org/2000/svg"
  1211. width="16"
  1212. height="16"
  1213. fill="currentColor"
  1214. class="bi bi-person"
  1215. viewBox="0 0 16 16"
  1216. >
  1217. <path
  1218. d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z"
  1219. />
  1220. </svg>
  1221. <input id="inputUser" type="text" placeholder="Usuário" />
  1222. </div>
  1223. <div>
  1224. <svg
  1225. xmlns="http://www.w3.org/2000/svg"
  1226. width="16"
  1227. height="16"
  1228. fill="currentColor"
  1229. class="bi bi-key"
  1230. viewBox="0 0 16 16"
  1231. >
  1232. <path
  1233. d="M0 8a4 4 0 0 1 7.465-2H14a.5.5 0 0 1 .354.146l1.5 1.5a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0L13 9.207l-.646.647a.5.5 0 0 1-.708 0L11 9.207l-.646.647a.5.5 0 0 1-.708 0L9 9.207l-.646.647A.5.5 0 0 1 8 10h-.535A4 4 0 0 1 0 8zm4-3a3 3 0 1 0 2.712 4.285A.5.5 0 0 1 7.163 9h.63l.853-.854a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.793-.793-1-1h-6.63a.5.5 0 0 1-.451-.285A3 3 0 0 0 4 5z"
  1234. />
  1235. <path d="M4 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0z" />
  1236. </svg>
  1237. <input id="inputPassword" type="password" placeholder="Senha" />
  1238. <svg
  1239. xmlns="http://www.w3.org/2000/svg"
  1240. width="16"
  1241. height="16"
  1242. fill="currentColor"
  1243. class="bi bi-eye-slash eye-hidden"
  1244. viewBox="0 0 16 16"
  1245. >
  1246. <path
  1247. d="M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z"
  1248. />
  1249. <path
  1250. d="M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z"
  1251. />
  1252. <path
  1253. d="M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z"
  1254. />
  1255. </svg>
  1256. <svg
  1257. xmlns="http://www.w3.org/2000/svg"
  1258. width="16"
  1259. height="16"
  1260. fill="currentColor"
  1261. class="bi bi-eye eye-show eye-none"
  1262. viewBox="0 0 16 16"
  1263. >
  1264. <path
  1265. d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"
  1266. />
  1267. <path
  1268. d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"
  1269. />
  1270. </svg>
  1271. </div>
  1272. <div class="buttons">
  1273. <button id="startStopVpn" type="button">
  1274. <span id="startStopVpnButtonValue">Conectar</span>
  1275. </button>
  1276. <button id="buttonLogs" type="button">
  1277. <svg
  1278. xmlns="http://www.w3.org/2000/svg"
  1279. width="16"
  1280. height="16"
  1281. fill="currentColor"
  1282. class="bi bi-file-earmark-text"
  1283. viewBox="0 0 16 16"
  1284. >
  1285. <path
  1286. d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z"
  1287. />
  1288. <path
  1289. d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"
  1290. />
  1291. </svg>
  1292. </button>
  1293. </div>
  1294. </form>
  1295. </div>
  1296. </section>
  1297. <section class="vpnStatus">
  1298. <svg
  1299. xmlns="http://www.w3.org/2000/svg"
  1300. width="16"
  1301. height="16"
  1302. fill="currentColor"
  1303. class="bi bi-plug"
  1304. viewBox="0 0 16 16"
  1305. >
  1306. <path
  1307. d="M6 0a.5.5 0 0 1 .5.5V3h3V.5a.5.5 0 0 1 1 0V3h1a.5.5 0 0 1 .5.5v3A3.5 3.5 0 0 1 8.5 10c-.002.434-.01.845-.04 1.22-.041.514-.126 1.003-.317 1.424a2.083 2.083 0 0 1-.97 1.028C6.725 13.9 6.169 14 5.5 14c-.998 0-1.61.33-1.974.718A1.922 1.922 0 0 0 3 16H2c0-.616.232-1.367.797-1.968C3.374 13.42 4.261 13 5.5 13c.581 0 .962-.088 1.218-.219.241-.123.4-.3.514-.55.121-.266.193-.621.23-1.09.027-.34.035-.718.037-1.141A3.5 3.5 0 0 1 4 6.5v-3a.5.5 0 0 1 .5-.5h1V.5A.5.5 0 0 1 6 0zM5 4v2.5A2.5 2.5 0 0 0 7.5 9h1A2.5 2.5 0 0 0 11 6.5V4H5z"
  1308. />
  1309. </svg>
  1310. <span>Desconectado</span>
  1311. </section>
  1312. <section class="local-ip">
  1313. <span>TIM: 192.168.0.1</span>
  1314. </section>
  1315. <section class="listOfCarriers">
  1316. <header class="header-list">
  1317. <svg
  1318. id="close-modal-configs"
  1319. xmlns="http://www.w3.org/2000/svg"
  1320. width="16"
  1321. height="16"
  1322. fill="currentColor"
  1323. class="bi bi-x-lg"
  1324. viewBox="0 0 16 16"
  1325. >
  1326. <path
  1327. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1328. />
  1329. </svg>
  1330. </header>
  1331. <section class="list-container"></section>
  1332. </section>
  1333. <section class="loading">
  1334. <header>
  1335. <svg
  1336. xmlns="http://www.w3.org/2000/svg"
  1337. width="16"
  1338. height="16"
  1339. fill="currentColor"
  1340. class="bi bi-x-lg"
  1341. viewBox="0 0 16 16"
  1342. >
  1343. <path
  1344. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1345. />
  1346. </svg>
  1347. </header>
  1348. <div class="loading-container"></div>
  1349. </section>
  1350. <section class="main-checkuser">
  1351. <header>
  1352. <svg
  1353. xmlns="http://www.w3.org/2000/svg"
  1354. width="16"
  1355. height="16"
  1356. fill="currentColor"
  1357. class="bi bi-x-lg"
  1358. viewBox="0 0 16 16"
  1359. >
  1360. <path
  1361. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1362. />
  1363. </svg>
  1364. </header>
  1365. <section class="container-content-checkuser">
  1366. <div class="connected-success">
  1367. <svg
  1368. xmlns="http://www.w3.org/2000/svg"
  1369. width="16"
  1370. height="16"
  1371. fill="currentColor"
  1372. class="bi bi-check2"
  1373. viewBox="0 0 16 16"
  1374. >
  1375. <path
  1376. d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"
  1377. />
  1378. </svg>
  1379. </div>
  1380. <ul></ul>
  1381. </section>
  1382. </section>
  1383. <section class="profile-checkuser">
  1384. <header>
  1385. <h1>INFORMAÇÕES DO PERFIL</h1>
  1386. </header>
  1387. <div id="not-profile-user" class="not-view-user">
  1388. <div class="circle">
  1389. <svg
  1390. xmlns="http://www.w3.org/2000/svg"
  1391. width="16"
  1392. height="16"
  1393. fill="currentColor"
  1394. class="bi bi-x-lg"
  1395. viewBox="0 0 16 16"
  1396. >
  1397. <path
  1398. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1399. />
  1400. </svg>
  1401. </div>
  1402. <h2>NÃO FOI POSSÍVEL CARREGAR AS INFORMAÇÕES DO PERFIL</h2>
  1403. <p>Tente conectar o seu usuário antes de verificar as informações do seu perfil</p>
  1404. </div>
  1405. <ul id="list-profile">
  1406. <li>
  1407. <svg
  1408. xmlns="http://www.w3.org/2000/svg"
  1409. width="16"
  1410. height="16"
  1411. fill="currentColor"
  1412. class="bi bi-person"
  1413. viewBox="0 0 16 16"
  1414. >
  1415. <path
  1416. d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z"
  1417. />
  1418. </svg>
  1419. <span>NOME DE USUÁRIO: fulano</span>
  1420. </li>
  1421. <li>
  1422. <svg
  1423. xmlns="http://www.w3.org/2000/svg"
  1424. width="16"
  1425. height="16"
  1426. fill="currentColor"
  1427. class="bi bi-calendar3-week even"
  1428. viewBox="0 0 16 16"
  1429. >
  1430. <path
  1431. d="M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z"
  1432. />
  1433. <path
  1434. d="M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"
  1435. />
  1436. </svg>
  1437. <span class="even">EXPIRAÇÃO: dd/mm/aaaa</span>
  1438. </li>
  1439. <li>
  1440. <svg
  1441. xmlns="http://www.w3.org/2000/svg"
  1442. width="16"
  1443. height="16"
  1444. fill="currentColor"
  1445. class="bi bi-hourglass-split"
  1446. viewBox="0 0 16 16"
  1447. >
  1448. <path
  1449. d="M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z"
  1450. />
  1451. </svg>
  1452. <span>DIAS RESTANTES: 99</span>
  1453. </li>
  1454. <li>
  1455. <svg
  1456. xmlns="http://www.w3.org/2000/svg"
  1457. width="16"
  1458. height="16"
  1459. fill="currentColor"
  1460. class="bi bi-phone-flip even"
  1461. viewBox="0 0 16 16"
  1462. >
  1463. <path
  1464. fill-rule="evenodd"
  1465. d="M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z"
  1466. />
  1467. </svg>
  1468. <span class="even">CONECTADOS: 01/03</span>
  1469. </li>
  1470. </ul>
  1471. <section class="terms">
  1472. <header>
  1473. <h1>TERMOS DE USO</h1>
  1474. </header>
  1475. <p>
  1476. Ao comprar o acesso você aceita todos os nossos termos!
  1477. <br />
  1478. --------------------------------------------------------------
  1479. <br />
  1480. <br />
  1481. 1- Todo e qualquer conteúdo acessado através do aplicativo é de responsabilidade do
  1482. usuário! caso o usuário aproveitar-se de nosso vpn para cometer qualquer ato ilegal,
  1483. será de total responsabilidade do usuário!
  1484. <br />
  1485. <br />
  1486. 2- Em casos de falha na conexão entre em contato com ovendedor que lhe forneceu o acesso
  1487. ao aplicativo!
  1488. <br />
  1489. <br />
  1490. 3- NÃO realizamos a prática de REEMBOLSO, então realize o teste grátis antes de comprar!
  1491. <br />
  1492. <br />
  1493. 4- Caso ocorra queda no sinal da operadora os dias offline serão adicionados de bônus.
  1494. Peça esses dias ao seu vendedor! (Somente quedas geral, quedas de forma especifica, não
  1495. nos responsabilizamos!)
  1496. <br />
  1497. <br />
  1498. 5- Caso houver alguma falhas de conexão por negligencia do usuário em não saber
  1499. configurar o aplicativo ou falha na rede móvel do usuário não disponibilizamos dias
  1500. bônus para estes casos. Porém disponibilizamos suporte especializado para ajudar a
  1501. solucionar esses problemas. Então em caso de falha de conexão entre em contato com seu
  1502. vendedor!
  1503. <br />
  1504. <br />
  1505. 6- Método de pagamento é pré-pago, ou seja você paga para usar. Caso desejar cancelar
  1506. basta não renovar no próximo mês, que seu login será deletado automaticamente. Não temos
  1507. termo de fidelidade em nossos serviços!
  1508. <br />
  1509. <br />
  1510. 7- Não temos vínculos algum com a operadora do seu chip. Vendemos apenas a conexão SSH,
  1511. que pode te liberar internet ilimitada através da conexão realizada no aplicativo!
  1512. <br />
  1513. <br />
  1514. 8- Nosso produto é a conexão SSH, não vendemos internet, caso a operadora que você está
  1515. utilizando não estiver conectando, você pode utilizar outra opção de operadora para
  1516. realizar a conexão!
  1517. <br />
  1518. <br />
  1519. 9- Ao utilizar nossa vpn você navegara de forma anônima na internet, dito isso você
  1520. concorda em não acessar qualquer conteúdo ilegal ou não permitidos em seu estado!
  1521. Atenciosamente Pogg corporation
  1522. <br />
  1523. --------------------------------------------------------------
  1524. </p>
  1525. </section>
  1526. </section>
  1527. <section class="tools">
  1528. <header>
  1529. <h1>FERRAMENTAS</h1>
  1530. </header>
  1531. <section class="container-tools">
  1532. <button id="config-apn">
  1533. <svg
  1534. xmlns="http://www.w3.org/2000/svg"
  1535. width="16"
  1536. height="16"
  1537. fill="currentColor"
  1538. class="bi bi-tools"
  1539. viewBox="0 0 16 16"
  1540. >
  1541. <path
  1542. d="M1 0 0 1l2.2 3.081a1 1 0 0 0 .815.419h.07a1 1 0 0 1 .708.293l2.675 2.675-2.617 2.654A3.003 3.003 0 0 0 0 13a3 3 0 1 0 5.878-.851l2.654-2.617.968.968-.305.914a1 1 0 0 0 .242 1.023l3.27 3.27a.997.997 0 0 0 1.414 0l1.586-1.586a.997.997 0 0 0 0-1.414l-3.27-3.27a1 1 0 0 0-1.023-.242L10.5 9.5l-.96-.96 2.68-2.643A3.005 3.005 0 0 0 16 3c0-.269-.035-.53-.102-.777l-2.14 2.141L12 4l-.364-1.757L13.777.102a3 3 0 0 0-3.675 3.68L7.462 6.46 4.793 3.793a1 1 0 0 1-.293-.707v-.071a1 1 0 0 0-.419-.814L1 0Zm9.646 10.646a.5.5 0 0 1 .708 0l2.914 2.915a.5.5 0 0 1-.707.707l-2.915-2.914a.5.5 0 0 1 0-.708ZM3 11l.471.242.529.026.287.445.445.287.026.529L5 13l-.242.471-.026.529-.445.287-.287.445-.529.026L3 15l-.471-.242L2 14.732l-.287-.445L1.268 14l-.026-.529L1 13l.242-.471.026-.529.445-.287.287-.445.529-.026L3 11Z"
  1543. />
  1544. </svg>
  1545. <span>CONFIGURAR APN</span>
  1546. </button>
  1547. <button id="battery-optimization">
  1548. <svg
  1549. xmlns="http://www.w3.org/2000/svg"
  1550. width="16"
  1551. height="16"
  1552. fill="currentColor"
  1553. class="bi bi-battery-half"
  1554. viewBox="0 0 16 16"
  1555. >
  1556. <path d="M2 6h5v4H2V6z" />
  1557. <path
  1558. d="M2 4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2zm10 1a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10zm4 3a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z"
  1559. />
  1560. </svg>
  1561. <span> OTIMIZAÇÃO DE BATERIA </span>
  1562. </button>
  1563. <button id="speedtest">
  1564. <svg
  1565. xmlns="http://www.w3.org/2000/svg"
  1566. width="16"
  1567. height="16"
  1568. fill="currentColor"
  1569. class="bi bi-speedometer2"
  1570. viewBox="0 0 16 16"
  1571. >
  1572. <path
  1573. d="M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4zM3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.389.389 0 0 0-.029-.518z"
  1574. />
  1575. <path
  1576. fill-rule="evenodd"
  1577. d="M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A7.988 7.988 0 0 1 0 10zm8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3z"
  1578. />
  1579. </svg>
  1580. <span> SPEED TESTE </span>
  1581. </button>
  1582. <button id="clean-data-app">
  1583. <svg
  1584. xmlns="http://www.w3.org/2000/svg"
  1585. width="16"
  1586. height="16"
  1587. fill="currentColor"
  1588. class="bi bi-trash"
  1589. viewBox="0 0 16 16"
  1590. >
  1591. <path
  1592. d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z"
  1593. />
  1594. <path
  1595. d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z"
  1596. />
  1597. </svg>
  1598. <span>RESETAR/LIMPAR APP</span>
  1599. </button>
  1600. </section>
  1601. </section>
  1602. <section class="renew-window">
  1603. <header>
  1604. <h1>RENOVAR USUARIO</h1>
  1605. </header>
  1606. <section>
  1607. <div>
  1608. <h1>ATUALMENTE NÃO DISPONIVEL</h1>
  1609. <p>
  1610. ESTA FUNÇÃO SERVIRÁ PARA VOCÊ RENOVAR SEU LOGIN DE FORMA AUTOMATICA E TUDO DENTRO DO
  1611. APP!
  1612. </p>
  1613. </div>
  1614. </section>
  1615. </section>
  1616. <section class="modal-speedtest">
  1617. <header>
  1618. <h1>SPEED TESTE</h1>
  1619. <svg
  1620. xmlns="http://www.w3.org/2000/svg"
  1621. width="16"
  1622. height="16"
  1623. fill="currentColor"
  1624. class="bi bi-x-lg"
  1625. viewBox="0 0 16 16"
  1626. >
  1627. <path
  1628. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1629. />
  1630. </svg>
  1631. </header>
  1632. <section>
  1633. <iframe src=""></iframe>
  1634. </section>
  1635. </section>
  1636. <section class="modal-error-alert">
  1637. <header>
  1638. <h1>ERROR</h1>
  1639. <svg
  1640. xmlns="http://www.w3.org/2000/svg"
  1641. width="16"
  1642. height="16"
  1643. fill="currentColor"
  1644. class="bi bi-x-lg"
  1645. viewBox="0 0 16 16"
  1646. >
  1647. <path
  1648. d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"
  1649. />
  1650. </svg>
  1651. </header>
  1652. <section>
  1653. <h1>TITULO DO ERRO</h1>
  1654. <p></p>
  1655. </section>
  1656. </section>
  1657. <section class="modal-logs">
  1658. <header>
  1659. <h1>REGISTRO</h1>
  1660. </header>
  1661. <p></p>
  1662. <section>
  1663. <button id="clean-data-logs">LIMPAR</button>
  1664. <button id="hidden-modal-logs">FECHAR</button>
  1665. </section>
  1666. </section>
  1667. <section class="controls">
  1668. <button id="refresh-button" type="button" title="Atualizar as configurações do app">
  1669. <svg
  1670. xmlns="http://www.w3.org/2000/svg"
  1671. width="16"
  1672. height="16"
  1673. fill="currentColor"
  1674. class="bi bi-arrow-clockwise"
  1675. viewBox="0 0 16 16"
  1676. >
  1677. <path
  1678. fill-rule="evenodd"
  1679. d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"
  1680. />
  1681. <path
  1682. d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z"
  1683. />
  1684. </svg>
  1685. </button>
  1686. <button id="renew" type="button" title="Renovar pagamento">
  1687. <svg
  1688. xmlns="http://www.w3.org/2000/svg"
  1689. width="16"
  1690. height="16"
  1691. fill="currentColor"
  1692. class="bi bi-cash-coin"
  1693. viewBox="0 0 16 16"
  1694. >
  1695. <path
  1696. fill-rule="evenodd"
  1697. d="M11 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm5-4a5 5 0 1 1-10 0 5 5 0 0 1 10 0z"
  1698. />
  1699. <path
  1700. d="M9.438 11.944c.047.596.518 1.06 1.363 1.116v.44h.375v-.443c.875-.061 1.386-.529 1.386-1.207 0-.618-.39-.936-1.09-1.1l-.296-.07v-1.2c.376.043.614.248.671.532h.658c-.047-.575-.54-1.024-1.329-1.073V8.5h-.375v.45c-.747.073-1.255.522-1.255 1.158 0 .562.378.92 1.007 1.066l.248.061v1.272c-.384-.058-.639-.27-.696-.563h-.668zm1.36-1.354c-.369-.085-.569-.26-.569-.522 0-.294.216-.514.572-.578v1.1h-.003zm.432.746c.449.104.655.272.655.569 0 .339-.257.571-.709.614v-1.195l.054.012z"
  1701. />
  1702. <path
  1703. d="M1 0a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h4.083c.058-.344.145-.678.258-1H3a2 2 0 0 0-2-2V3a2 2 0 0 0 2-2h10a2 2 0 0 0 2 2v3.528c.38.34.717.728 1 1.154V1a1 1 0 0 0-1-1H1z"
  1704. />
  1705. <path d="M9.998 5.083 10 5a2 2 0 1 0-3.132 1.65 5.982 5.982 0 0 1 3.13-1.567z" />
  1706. </svg>
  1707. </button>
  1708. <button id="backToHome" type="button" title="Voltar para a página inicial">
  1709. <svg
  1710. xmlns="http://www.w3.org/2000/svg"
  1711. width="16"
  1712. height="16"
  1713. fill="currentColor"
  1714. class="bi bi-house"
  1715. viewBox="0 0 16 16"
  1716. >
  1717. <path
  1718. d="M8.707 1.5a1 1 0 0 0-1.414 0L.646 8.146a.5.5 0 0 0 .708.708L2 8.207V13.5A1.5 1.5 0 0 0 3.5 15h9a1.5 1.5 0 0 0 1.5-1.5V8.207l.646.647a.5.5 0 0 0 .708-.708L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.707 1.5ZM13 7.207V13.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V7.207l5-5 5 5Z"
  1719. />
  1720. </svg>
  1721. </button>
  1722. <button id="utilitys" type="button" title="utilidades">
  1723. <svg
  1724. xmlns="http://www.w3.org/2000/svg"
  1725. width="16"
  1726. height="16"
  1727. fill="currentColor"
  1728. class="bi bi-gear"
  1729. viewBox="0 0 16 16"
  1730. >
  1731. <path
  1732. d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"
  1733. />
  1734. <path
  1735. d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"
  1736. />
  1737. </svg>
  1738. </button>
  1739. <button id="profile-button" type="button" title="Detalhes do usuário">
  1740. <svg
  1741. xmlns="http://www.w3.org/2000/svg"
  1742. width="16"
  1743. height="16"
  1744. fill="currentColor"
  1745. class="bi bi-person"
  1746. viewBox="0 0 16 16"
  1747. >
  1748. <path
  1749. d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z"
  1750. />
  1751. </svg>
  1752. </button>
  1753. </section>
  1754. </main>
  1755. <!-- VARIAVEIS DE CONSULTA -->
  1756. <script>
  1757. let dataCheckuser
  1758. let zIndexContainers
  1759. </script>
  1760. <!-- FUNÇÕES DO APP -->
  1761. <script>
  1762. const dtStatusBarHeight = () => DtGetStatusBarHeight.execute()
  1763. const dtNavHeight = () => DtGetNavigationBarHeight.execute()
  1764. const dtGetLogs = () => DtGetLogs.execute()
  1765. const dtClearLogs = () => DtClearLogs.execute()
  1766. const dtVpnState = () => DtGetVpnState.execute()
  1767. const dtTranslateText = (label) => DtTranslateText.execute(label)
  1768. const dtStartVpn = () => DtExecuteVpnStart.execute()
  1769. const dtStopVpn = () => DtExecuteVpnStop.execute()
  1770. const dtUpdate = () => DtStartAppUpdate.execute()
  1771. const dtAllConfigs = () => DtGetConfigs.execute()
  1772. const dtSetConfig = (id) => DtSetConfig.execute(id)
  1773. const dtGetDefaultConfig = () => DtGetDefaultConfig.execute()
  1774. const dtGetUsername = () => DtUsername.get()
  1775. const dtSetUsername = (username) => DtUsername.set(username)
  1776. const dtGetPassword = () => DtPassword.get()
  1777. const dtSetPassword = (password) => DtPassword.set(password)
  1778. const dtApnConfig = () => DtStartApnActivity.execute()
  1779. const dtBatteryOptimization = () => DtIgnoreBatteryOptimizations.execute()
  1780. const dtCleanApp = () => DtCleanApp.execute()
  1781. const dtGetNetworkName = () => Android.getNetworkName()
  1782. const dtGetNetworkLocalIp = () => Android.getLocalIP()
  1783. </script>
  1784. <!-- FUNÇÕES PARA O APP -->
  1785. <script>
  1786. const dtVpnStateListener = (state) => {
  1787. const stateVpn = vpnState(state)
  1788. vpnStatus.html(stateVpn)
  1789. }
  1790. const dtOnNewLogListener = () => writeModalLogger()
  1791. const dtConfigClickListener = () => {
  1792. const user = dtGetUsername()
  1793. const pass = dtGetPassword()
  1794. const value = areaCarrierSelector()
  1795. CarrierTextValue.html(value)
  1796. inputUser.attr({ placeholder: inputUserPlaceholder(), value: inputUserValue() })
  1797. inputPassword.attr({ placeholder: inputPasswordPlaceholder(), value: inputPasswordValue() })
  1798. }
  1799. const dtCheckUserModelListener = (model) => {
  1800. dataCheckuser = model
  1801. writeMainCheckuser(dataCheckuser)
  1802. writeProfileCheckuser(dataCheckuser)
  1803. loadingContainer.toggleClass('show')
  1804. mainCheckuser.addClass('show')
  1805. }
  1806. const dtCheckUserStartedListener = () => {
  1807. loadingContainer.addClass('show')
  1808. }
  1809. const dtMessageErrorListener = (model) => writeModalError(model)
  1810. </script>
  1811. <!-- HELPERS -->
  1812. <script>
  1813. const createSvgIcon = (iconPath, Class = '') => {
  1814. const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
  1815. svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg')
  1816. svg.setAttribute('width', '16')
  1817. svg.setAttribute('height', '16')
  1818. svg.setAttribute('fill', 'currentColor')
  1819. svg.setAttribute('viewBox', '0 0 16 16')
  1820. svg.setAttribute('class', Class)
  1821. const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')
  1822. path.setAttribute('d', iconPath)
  1823. svg.appendChild(path)
  1824. return svg
  1825. }
  1826. const createListItem = (iconPath, Class = '', text) => {
  1827. const li = document.createElement('li')
  1828. const svg = createSvgIcon(iconPath, Class)
  1829. const span = document.createElement('span')
  1830. span.setAttribute('class', Class)
  1831. span.innerHTML = text
  1832. li.appendChild(svg)
  1833. li.appendChild(span)
  1834. return li
  1835. }
  1836. </script>
  1837. <!-- FUNÇÕES DO LAYOUT -->
  1838. <script>
  1839. const vpnState = (state) => {
  1840. const stateLabel = state || dtVpnState()
  1841. switch (stateLabel) {
  1842. case 'DISCONNECTED':
  1843. writeStartStopVpnButton(dtTranslateText('LBL_BTN_START'))
  1844. return disconnected()
  1845. case 'CONNECTING':
  1846. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOP'))
  1847. return connecting()
  1848. case 'CONNECTED':
  1849. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOP'))
  1850. return connected()
  1851. case 'STOPPING':
  1852. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOPPING'))
  1853. return stopping()
  1854. case 'NO_NETWORK':
  1855. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOP'))
  1856. return noNetwork()
  1857. case 'AUTH':
  1858. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOP'))
  1859. return auth()
  1860. case 'AUTH_FAILED':
  1861. writeStartStopVpnButton(dtTranslateText('LBL_BTN_STOP'))
  1862. return authFailed()
  1863. default:
  1864. return 'Não foi possível obter o status da conexão'
  1865. }
  1866. }
  1867. const writeNetworkStatus = () => {
  1868. let span = '<span>Localizando rede...</span>'
  1869. setInterval(() => {
  1870. if (dtGetNetworkName() && dtGetNetworkLocalIp()) {
  1871. const carrierName = `${dtGetNetworkName()}`
  1872. const localIP = `${dtGetNetworkLocalIp()}`
  1873. span = `<span>${carrierName}: ${localIP}</span>`
  1874. networkStatus.html(span)
  1875. } else {
  1876. span = `<span>Não foi possível carregar informações da rede</span>`
  1877. }
  1878. }, 500)
  1879. return span
  1880. }
  1881. const allConfigs = () => {
  1882. const ListContainer = document.querySelector('section.list-container')
  1883. ListContainer.innerHTML = ''
  1884. const configs = JSON.parse(dtAllConfigs())
  1885. configs.sort((a, b) => a.sorter - b.sorter)
  1886. configs.forEach((item) => item.items.sort((a, b) => a.sorter - b.sorter))
  1887. configs.forEach((category) => {
  1888. const defaultColor = category.color
  1889. const categoryColor = `#${defaultColor.substr(3)}${defaultColor.substr(1, 2)}`
  1890. document.documentElement.style.setProperty(
  1891. '--cor-de-fundo-do-header-da-categoria',
  1892. categoryColor
  1893. )
  1894. document.documentElement.style.setProperty(
  1895. '--cor-de-fundo-do-item-da-configuracao',
  1896. categoryColor
  1897. )
  1898. const div = document.createElement('div')
  1899. const header = document.createElement('header')
  1900. const h1 = document.createElement('h1')
  1901. const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
  1902. const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')
  1903. const ul = document.createElement('ul')
  1904. div.classList.add('category')
  1905. ul.classList.add('configs')
  1906. h1.textContent = category.name
  1907. svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg')
  1908. svg.setAttribute('width', '16')
  1909. svg.setAttribute('height', '16')
  1910. svg.setAttribute('fill', 'currentColor')
  1911. svg.setAttribute('class', 'bi bi-caret-right')
  1912. svg.setAttribute('viewBox', '0 0 16 16')
  1913. path.setAttribute(
  1914. 'd',
  1915. 'M6 12.796V3.204L11.481 8 6 12.796zm.659.753 5.48-4.796a1 1 0 0 0 0-1.506L6.66 2.451C6.011 1.885 5 2.345 5 3.204v9.592a1 1 0 0 0 1.659.753'
  1916. )
  1917. svg.appendChild(path)
  1918. header.appendChild(h1)
  1919. header.appendChild(svg)
  1920. div.appendChild(header)
  1921. category.items.forEach((item) => {
  1922. const li = document.createElement('li')
  1923. const img = document.createElement('img')
  1924. const h1Item = document.createElement('h1')
  1925. const pItem = document.createElement('p')
  1926. const pMode = document.createElement('p')
  1927. const divLogo = document.createElement('div')
  1928. const divDescription = document.createElement('div')
  1929. const divMode = document.createElement('div')
  1930. divLogo.classList.add('logo')
  1931. divDescription.classList.add('description')
  1932. divMode.classList.add('mode')
  1933. h1Item.textContent = item.name
  1934. pItem.textContent = item.description
  1935. pMode.textContent = item.mode
  1936. img.setAttribute('src', item.icon)
  1937. divLogo.appendChild(img)
  1938. divDescription.appendChild(h1Item)
  1939. divDescription.appendChild(pItem)
  1940. divMode.appendChild(pMode)
  1941. li.appendChild(divLogo)
  1942. li.appendChild(divDescription)
  1943. li.appendChild(divMode)
  1944. ul.appendChild(li)
  1945. div.appendChild(ul)
  1946. li.addEventListener('click', () => {
  1947. dtSetConfig(item.id)
  1948. listOfCarriers.toggleClass('active')
  1949. })
  1950. })
  1951. header.addEventListener('click', () => {
  1952. if (ul.offsetHeight <= 0) {
  1953. ul.style.maxHeight = `${ul.scrollHeight}px`
  1954. svg.style.transform = 'rotate(90deg)'
  1955. } else {
  1956. ul.style.maxHeight = '0px'
  1957. svg.style.transform = 'rotate(0deg)'
  1958. }
  1959. })
  1960. ListContainer.appendChild(div)
  1961. })
  1962. }
  1963. const showPassword = () => {
  1964. const inputPassword = document.querySelector('#inputPassword')
  1965. if (inputPassword.type === 'password') {
  1966. inputPassword.type = 'text'
  1967. eyeHidden.toggleClass('.eye-none').style({ display: 'none' })
  1968. eyeShow.style({ display: 'block' })
  1969. } else {
  1970. inputPassword.type = 'password'
  1971. eyeShow.toggleClass('.eye-none').style({ display: 'none' })
  1972. eyeHidden.toggleClass('.eye-none').style({ display: 'block' })
  1973. }
  1974. }
  1975. const startStopVpn = () => {
  1976. const state = dtVpnState()
  1977. state === 'CONNECTED' ? dtStopVpn() : dtStartVpn()
  1978. }
  1979. const writeStartStopVpnButton = (status) => {
  1980. buttonStartStopVpnValue.html(status)
  1981. }
  1982. const writeMainCheckuser = (model) => {
  1983. const data = JSON.parse(model)
  1984. const ul = document.querySelector(
  1985. 'section.main-checkuser section.container-content-checkuser ul'
  1986. )
  1987. const username = createListItem(
  1988. 'M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z',
  1989. '',
  1990. `NOME DE USUÁRIO: ${data.username}`
  1991. )
  1992. const expiration = createListItem(
  1993. 'M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z"/><path d="M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
  1994. '',
  1995. `EXPIRAÇÃO: ${data.expiration_date}`
  1996. )
  1997. const remainingDays = createListItem(
  1998. 'M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z',
  1999. '',
  2000. `DIAS RESTANTES: ${data.expiration_days}`
  2001. )
  2002. const connecteds = createListItem(
  2003. 'M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z',
  2004. '',
  2005. `CONECTADOS: ${data.count_connections}/${data.limit_connections}`
  2006. )
  2007. ul.innerHTML =
  2008. username.outerHTML + expiration.outerHTML + remainingDays.outerHTML + connecteds.outerHTML
  2009. }
  2010. const showProfile = (model) => {
  2011. hiddenAll()
  2012. const data = model
  2013. const main = document.querySelector('section.profile-checkuser')
  2014. const zIndexMain = window.getComputedStyle(main).getPropertyValue('z-index')
  2015. if (data !== undefined) {
  2016. notViewUser.removeClass('show')
  2017. viewUser.addClass('show')
  2018. mainProfile.addClass('show')
  2019. } else {
  2020. viewUser.removeClass('show')
  2021. notViewUser.addClass('show')
  2022. mainProfile.addClass('show')
  2023. }
  2024. }
  2025. const hiddenProfile = () => {
  2026. mainProfile.removeClass('show')
  2027. mainProfile.style({ 'z-index': 0 })
  2028. }
  2029. const writeProfileCheckuser = (model) => {
  2030. const data = JSON.parse(model)
  2031. const username = createListItem(
  2032. 'M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z',
  2033. '',
  2034. `NOME DE USUÁRIO: ${data.username}`
  2035. )
  2036. const expiration = createListItem(
  2037. 'M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z"/><path d="M12 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm2-3a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm-5 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2z',
  2038. 'even',
  2039. `EXPIRAÇÃO: ${data.expiration_date}`
  2040. )
  2041. const remainingDays = createListItem(
  2042. 'M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1h-11zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2h-7zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48V8.35zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z',
  2043. '',
  2044. `DIAS RESTANTES: ${data.expiration_days}`
  2045. )
  2046. const connecteds = createListItem(
  2047. 'M11 1H5a1 1 0 0 0-1 1v6a.5.5 0 0 1-1 0V2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a.5.5 0 0 1-1 0V2a1 1 0 0 0-1-1Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a.5.5 0 0 0-1 0v2a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2a.5.5 0 0 0-1 0v2ZM1.713 7.954a.5.5 0 1 0-.419-.908c-.347.16-.654.348-.882.57C.184 7.842 0 8.139 0 8.5c0 .546.408.94.823 1.201.44.278 1.043.51 1.745.696C3.978 10.773 5.898 11 8 11c.099 0 .197 0 .294-.002l-1.148 1.148a.5.5 0 0 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2a.5.5 0 1 0-.708.708l1.145 1.144L8 10c-2.04 0-3.87-.221-5.174-.569-.656-.175-1.151-.374-1.47-.575C1.012 8.639 1 8.506 1 8.5c0-.003 0-.059.112-.17.115-.112.31-.242.6-.376Zm12.993-.908a.5.5 0 0 0-.419.908c.292.134.486.264.6.377.113.11.113.166.113.169 0 .003 0 .065-.13.187-.132.122-.352.26-.677.4-.645.28-1.596.523-2.763.687a.5.5 0 0 0 .14.99c1.212-.17 2.26-.43 3.02-.758.38-.164.713-.357.96-.587.246-.229.45-.537.45-.919 0-.362-.184-.66-.412-.883-.228-.223-.535-.411-.882-.571ZM7.5 2a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1Z',
  2048. 'even',
  2049. `CONECTADOS: ${data.count_connections}/${data.limit_connections}`
  2050. )
  2051. viewUser.html(
  2052. username.outerHTML + expiration.outerHTML + remainingDays.outerHTML + connecteds.outerHTML
  2053. )
  2054. }
  2055. const hiddenLoadContainer = () => {
  2056. loadingContainer.removeClass('show')
  2057. }
  2058. const showMainTools = () => {
  2059. hiddenAll()
  2060. MainTools.style({ 'z-index': 1 })
  2061. MainTools.addClass('show')
  2062. }
  2063. const hiddenMainTools = () => {
  2064. MainTools.style({ 'z-index': 0 })
  2065. MainTools.removeClass('show')
  2066. }
  2067. const showModalSpeedtest = () => {
  2068. ModalSpeedtest.addClass('show')
  2069. IframeModalSpeedtest.attr({ src: 'https://fiber.google.com/speedtest/' })
  2070. }
  2071. const hiddenModalSpeedtest = () => {
  2072. ModalSpeedtest.removeClass('show')
  2073. IframeModalSpeedtest.attr({ src: '' })
  2074. }
  2075. const writeModalError = (model) => {
  2076. const data = JSON.parse(model)
  2077. const h1 = `<h1>${data.title}</h1>`
  2078. const p = `<p>${data.content}</p>`
  2079. ContentModalError.html(h1 + p)
  2080. hiddenAll()
  2081. showModalError()
  2082. }
  2083. const showModalError = () => {
  2084. ModalError.addClass('show')
  2085. }
  2086. const hiddenModalError = () => {
  2087. ModalError.removeClass('show')
  2088. }
  2089. const writeModalLogger = () => {
  2090. const data = JSON.parse(dtGetLogs())
  2091. const p = document.querySelector('section.modal-logs p')
  2092. let content = ''
  2093. data.forEach((item) => {
  2094. content += `${Object.keys(item)} ${item[Object.keys(item)]} <br>`
  2095. })
  2096. ModalLoggerContent.html(content)
  2097. p.scrollTop = p.scrollHeight
  2098. return content
  2099. }
  2100. const showModalLogger = () => {
  2101. ModalLogger.addClass('show')
  2102. }
  2103. const hiddenModalRegister = () => {
  2104. ModalLogger.removeClass('show')
  2105. }
  2106. const showRenew = () => {
  2107. hiddenAll()
  2108. MainRenew.addClass('show')
  2109. }
  2110. const hiddenRenew = () => {
  2111. MainRenew.removeClass('show')
  2112. }
  2113. const hiddenAll = () => {
  2114. hiddenProfile()
  2115. hiddenMainTools()
  2116. hiddenModalSpeedtest()
  2117. hiddenModalError()
  2118. hiddenModalRegister()
  2119. hiddenRenew()
  2120. }
  2121. </script>
  2122. <!-- ESTADOS DE CONEXÃO -->
  2123. <script>
  2124. const disconnected = () => {
  2125. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-outlet" viewBox="0 0 16 16"><path d="M3.34 2.994c.275-.338.68-.494 1.074-.494h7.172c.393 0 .798.156 1.074.494.578.708 1.84 2.534 1.84 5.006 0 2.472-1.262 4.297-1.84 5.006-.276.338-.68.494-1.074.494H4.414c-.394 0-.799-.156-1.074-.494C2.762 12.297 1.5 10.472 1.5 8c0-2.472 1.262-4.297 1.84-5.006zm1.074.506a.376.376 0 0 0-.299.126C3.599 4.259 2.5 5.863 2.5 8c0 2.137 1.099 3.74 1.615 4.374.06.073.163.126.3.126h7.17c.137 0 .24-.053.3-.126.516-.633 1.615-2.237 1.615-4.374 0-2.137-1.099-3.74-1.615-4.374a.376.376 0 0 0-.3-.126h-7.17z"/><path d="M6 5.5a.5.5 0 0 1 .5.5v1.5a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm4 0a.5.5 0 0 1 .5.5v1.5a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zM7 10v1h2v-1a1 1 0 0 0-2 0z"/></svg>`
  2126. const text = `<span>${dtTranslateText('LBL_STATE_DISCONNECTED')}</span>`
  2127. return icon + text
  2128. }
  2129. const connecting = () => {
  2130. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plug" viewBox="0 0 16 16"><path d="M6 0a.5.5 0 0 1 .5.5V3h3V.5a.5.5 0 0 1 1 0V3h1a.5.5 0 0 1 .5.5v3A3.5 3.5 0 0 1 8.5 10c-.002.434-.01.845-.04 1.22-.041.514-.126 1.003-.317 1.424a2.083 2.083 0 0 1-.97 1.028C6.725 13.9 6.169 14 5.5 14c-.998 0-1.61.33-1.974.718A1.922 1.922 0 0 0 3 16H2c0-.616.232-1.367.797-1.968C3.374 13.42 4.261 13 5.5 13c.581 0 .962-.088 1.218-.219.241-.123.4-.3.514-.55.121-.266.193-.621.23-1.09.027-.34.035-.718.037-1.141A3.5 3.5 0 0 1 4 6.5v-3a.5.5 0 0 1 .5-.5h1V.5A.5.5 0 0 1 6 0zM5 4v2.5A2.5 2.5 0 0 0 7.5 9h1A2.5 2.5 0 0 0 11 6.5V4H5z"/></svg>`
  2131. const text = `<span>${dtTranslateText('LBL_STATE_CONNECTING')}</span>`
  2132. return icon + text
  2133. }
  2134. const connected = () => {
  2135. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plugin" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1 8a7 7 0 1 1 2.898 5.673c-.167-.121-.216-.406-.002-.62l1.8-1.8a3.5 3.5 0 0 0 4.572-.328l1.414-1.415a.5.5 0 0 0 0-.707l-.707-.707 1.559-1.563a.5.5 0 1 0-.708-.706l-1.559 1.562-1.414-1.414 1.56-1.562a.5.5 0 1 0-.707-.706l-1.56 1.56-.707-.706a.5.5 0 0 0-.707 0L5.318 5.975a3.5 3.5 0 0 0-.328 4.571l-1.8 1.8c-.58.58-.62 1.6.121 2.137A8 8 0 1 0 0 8a.5.5 0 0 0 1 0Z"/></svg>`
  2136. const text = `<span>${dtTranslateText('LBL_STATE_CONNECTED')}</span>`
  2137. return icon + text
  2138. }
  2139. const stopping = () => {
  2140. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-stop" viewBox="0 0 16 16"><path d="M3.5 5A1.5 1.5 0 0 1 5 3.5h6A1.5 1.5 0 0 1 12.5 5v6a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 11V5zM5 4.5a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h6a.5.5 0 0 0 .5-.5V5a.5.5 0 0 0-.5-.5H5z"/></svg>`
  2141. const text = `<span>${dtTranslateText('LBL_STATE_STOPPING')}</span>`
  2142. return icon + text
  2143. }
  2144. const noNetwork = () => {
  2145. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-wifi-off" viewBox="0 0 16 16"><path d="M10.706 3.294A12.545 12.545 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c.63 0 1.249.05 1.852.148l.854-.854zM8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065 8.448 8.448 0 0 1 3.51-1.27L8 6zm2.596 1.404.785-.785c.63.24 1.227.545 1.785.907a.482.482 0 0 1 .063.745.525.525 0 0 1-.652.065 8.462 8.462 0 0 0-1.98-.932zM8 10l.933-.933a6.455 6.455 0 0 1 2.013.637c.285.145.326.524.1.75l-.015.015a.532.532 0 0 1-.611.09A5.478 5.478 0 0 0 8 10zm4.905-4.905.747-.747c.59.3 1.153.645 1.685 1.03a.485.485 0 0 1 .047.737.518.518 0 0 1-.668.05 11.493 11.493 0 0 0-1.811-1.07zM9.02 11.78c.238.14.236.464.04.66l-.707.706a.5.5 0 0 1-.707 0l-.707-.707c-.195-.195-.197-.518.04-.66A1.99 1.99 0 0 1 8 11.5c.374 0 .723.102 1.021.28zm4.355-9.905a.53.53 0 0 1 .75.75l-10.75 10.75a.53.53 0 0 1-.75-.75l10.75-10.75z"/></svg>`
  2146. const text = `<span>${dtTranslateText('LBL_STATE_NO_NETWORK')}</span>`
  2147. return icon + text
  2148. }
  2149. const auth = () => {
  2150. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-lock" viewBox="0 0 16 16"><path d="M11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 5.996V14H3s-1 0-1-1 1-4 6-4c.564 0 1.077.038 1.544.107a4.524 4.524 0 0 0-.803.918A10.46 10.46 0 0 0 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h5ZM9 13a1 1 0 0 1 1-1v-1a2 2 0 1 1 4 0v1a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2Zm3-3a1 1 0 0 0-1 1v1h2v-1a1 1 0 0 0-1-1Z"/></svg>`
  2151. const text = `<span>${dtTranslateText('LBL_STATE_AUTH')}</span>`
  2152. return icon + text
  2153. }
  2154. const authFailed = () => {
  2155. const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-slash" viewBox="0 0 16 16"><path d="M13.879 10.414a2.501 2.501 0 0 0-3.465 3.465l3.465-3.465Zm.707.707-3.465 3.465a2.501 2.501 0 0 0 3.465-3.465Zm-4.56-1.096a3.5 3.5 0 1 1 4.949 4.95 3.5 3.5 0 0 1-4.95-4.95ZM11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm.256 7a4.474 4.474 0 0 1-.229-1.004H3c.001-.246.154-.986.832-1.664C4.484 10.68 5.711 10 8 10c.26 0 .507.009.74.025.226-.341.496-.65.804-.918C9.077 9.038 8.564 9 8 9c-5 0-6 3-6 4s1 1 1 1h5.256Z"/></svg>`
  2156. const text = `<span>${dtTranslateText('LBL_STATE_AUTH_FAILED')}</span>`
  2157. return icon + text
  2158. }
  2159. </script>
  2160. <!-- VALOR DE EXIBIÇÃO DO CAMPO DE SELECIONAR OPERADORA -->
  2161. <script>
  2162. const areaCarrierSelector = () => {
  2163. const data = dtGetDefaultConfig()
  2164. if (data !== undefined) {
  2165. return JSON.parse(data).name
  2166. } else {
  2167. return dtTranslateText('LBL_CHOOSE_CONFIG')
  2168. }
  2169. }
  2170. </script>
  2171. <!-- VALOR DE EXIBIÇÃO DO INPUT USUÁRIO DO USUÁRIO -->
  2172. <script>
  2173. const inputUserPlaceholder = () => dtTranslateText('LBL_USERNAME')
  2174. const inputUserValue = () => {
  2175. if (dtGetUsername()) {
  2176. return dtGetUsername()
  2177. } else {
  2178. return ''
  2179. }
  2180. }
  2181. </script>
  2182. <!-- VALOR DE EXIBIÇÃO DO INPUT DA SENHA DO USUÁRIO -->
  2183. <script>
  2184. const inputPasswordPlaceholder = () => dtTranslateText('LBL_PASSWORD')
  2185. const inputPasswordValue = () => {
  2186. if (dtGetPassword()) {
  2187. return dtGetPassword()
  2188. } else {
  2189. return ''
  2190. }
  2191. }
  2192. </script>
  2193. <!-- DOM WRAPPER -->
  2194. <script>
  2195. const Dom = (selector) => {
  2196. const _elements = document.querySelectorAll(selector)
  2197. const wrapper = {
  2198. on(listeners) {
  2199. for (const [event, listener] of Object.entries(listeners)) {
  2200. _elements.forEach((element) => {
  2201. element.addEventListener(event, listener)
  2202. })
  2203. }
  2204. return wrapper
  2205. },
  2206. addClass: (...tokens) => {
  2207. _elements.forEach((element) => {
  2208. element.classList.add(...tokens)
  2209. })
  2210. return wrapper
  2211. },
  2212. removeClass: (...tokens) => {
  2213. _elements.forEach((element) => {
  2214. element.classList.remove(...tokens)
  2215. })
  2216. return wrapper
  2217. },
  2218. toggleClass: (token, force) => {
  2219. _elements.forEach((element) => {
  2220. element.classList.toggle(token, force)
  2221. })
  2222. return wrapper
  2223. },
  2224. style(styles) {
  2225. for (const [property, value] of Object.entries(styles)) {
  2226. console.log(value)
  2227. _elements.forEach((element) => {
  2228. element.style[property] = value
  2229. })
  2230. }
  2231. return wrapper
  2232. },
  2233. attr(attrs) {
  2234. for (const [name, value] of Object.entries(attrs)) {
  2235. _elements.forEach((element) => element.setAttribute(name, value))
  2236. }
  2237. return wrapper
  2238. },
  2239. html(value) {
  2240. _elements.forEach((element) => (element.innerHTML = value))
  2241. return wrapper
  2242. },
  2243. }
  2244. return wrapper
  2245. }
  2246. </script>
  2247. <!-- VÁRIAVIES -->
  2248. <script>
  2249. const main = Dom('main')
  2250. const vpnStatus = Dom('section.vpnStatus')
  2251. const networkStatus = Dom('section.local-ip')
  2252. const carrierSelector = Dom('div.carrierSelector')
  2253. const listOfCarriers = Dom('section.listOfCarriers')
  2254. const closeModalCarriers = Dom('#close-modal-configs')
  2255. const CarrierCategoryContainer = Dom('section.list-container')
  2256. const CarrierTextValue = Dom('div.carrierSelector span')
  2257. const buttonControl = Dom('section.controls')
  2258. const refreshButton = Dom('#refresh-button')
  2259. const renewButton = Dom('#renew')
  2260. const backToHome = Dom('#backToHome')
  2261. const ToolsButton = Dom('#utilitys')
  2262. const profileButton = Dom('#profile-button')
  2263. const inputUser = Dom('#inputUser')
  2264. const inputPassword = Dom('#inputPassword')
  2265. const buttonStartStopVpn = Dom('#startStopVpn')
  2266. const buttonLogs = Dom('#buttonLogs')
  2267. const buttonStartStopVpnValue = Dom('#startStopVpnButtonValue')
  2268. const mainCheckuser = Dom('section.main-checkuser')
  2269. const mainCheckuserClose = Dom('section.main-checkuser header svg')
  2270. const mainCheckuserContent = Dom('section.main-checkuser section.container-content-checkuser')
  2271. const loadingContainer = Dom('section.loading')
  2272. const loadingContainerClose = Dom('section.loading header svg')
  2273. const mainProfile = Dom('section.profile-checkuser')
  2274. const notViewUser = Dom('#not-profile-user')
  2275. const viewUser = Dom('#list-profile')
  2276. const MainTools = Dom('section.tools')
  2277. const ConfigApnButton = Dom('#config-apn')
  2278. const BatteryOptimizeButton = Dom('#battery-optimization')
  2279. const SpeedtestButton = Dom('#speedtest')
  2280. const ClearDataAppButton = Dom('#clean-data-app')
  2281. const MainRenew = Dom('section.renew-window')
  2282. const ModalSpeedtest = Dom('section.modal-speedtest')
  2283. const CloseModalSpeedtest = Dom('section.modal-speedtest header svg')
  2284. const IframeModalSpeedtest = Dom('section.modal-speedtest section iframe')
  2285. const ModalError = Dom('section.modal-error-alert')
  2286. const CloseModalError = Dom('section.modal-error-alert header svg')
  2287. const ContentModalError = Dom('section.modal-error-alert section')
  2288. const ModalLogger = Dom('section.modal-logs')
  2289. const CloseModalLogger = Dom('#hidden-modal-logs')
  2290. const ModalLoggerContent = Dom('section.modal-logs p')
  2291. const CleanLoggerContent = Dom('#clean-data-logs')
  2292. const eyeHidden = Dom('svg.eye-hidden')
  2293. const eyeShow = Dom('svg.eye-show')
  2294. </script>
  2295. <!-- AÇÕES -->
  2296. <script>
  2297. main.style({ padding: `${dtStatusBarHeight() + 100}px 0px 0px 0px` })
  2298. mainProfile.style({
  2299. padding: `${dtStatusBarHeight() + 10}px 0px ${dtNavHeight() + 90}px 0px`,
  2300. })
  2301. MainTools.style({ padding: `${dtStatusBarHeight() + 10}px 0px ${dtNavHeight() + 90}px 0px` })
  2302. MainRenew.style({ padding: `${dtStatusBarHeight() + 10}px 0px ${dtNavHeight() + 90}px 0px` })
  2303. ModalLogger.style({
  2304. top: `${dtStatusBarHeight() + 95}px`,
  2305. bottom: `${dtNavHeight() + 95}px`,
  2306. })
  2307. vpnStatus.html(vpnState())
  2308. networkStatus.html(writeNetworkStatus())
  2309. carrierSelector.on({
  2310. click: () => {
  2311. allConfigs()
  2312. listOfCarriers.toggleClass('active')
  2313. },
  2314. })
  2315. closeModalCarriers.on({ click: () => listOfCarriers.toggleClass('active') })
  2316. CarrierTextValue.html(areaCarrierSelector())
  2317. inputUser.on({ input: (e) => dtSetUsername(e.target.value) })
  2318. inputPassword.on({ input: (e) => dtSetPassword(e.target.value) })
  2319. eyeHidden.on({ click: () => showPassword() })
  2320. eyeShow.on({ click: () => showPassword() })
  2321. inputUser.attr({ placeholder: inputUserPlaceholder(), value: inputUserValue() })
  2322. inputPassword.attr({ placeholder: inputPasswordPlaceholder(), value: inputPasswordValue() })
  2323. buttonControl.style({ bottom: `${dtNavHeight() + 10}px` })
  2324. refreshButton.on({ click: () => dtUpdate() })
  2325. renewButton.on({ click: () => showRenew() })
  2326. backToHome.on({
  2327. click: () => {
  2328. hiddenAll()
  2329. },
  2330. })
  2331. ToolsButton.on({ click: () => showMainTools() })
  2332. profileButton.on({ click: () => showProfile(dataCheckuser) })
  2333. buttonStartStopVpn.on({ click: () => startStopVpn() })
  2334. buttonLogs.on({ click: () => showModalLogger() })
  2335. loadingContainerClose.on({ click: () => hiddenLoadContainer() })
  2336. mainCheckuserClose.on({ click: () => mainCheckuser.toggleClass('show') })
  2337. ConfigApnButton.on({ click: () => dtApnConfig() })
  2338. BatteryOptimizeButton.on({ click: () => dtBatteryOptimization() })
  2339. SpeedtestButton.on({ click: () => showModalSpeedtest() })
  2340. CloseModalSpeedtest.on({ click: () => hiddenModalSpeedtest() })
  2341. ClearDataAppButton.on({ click: () => dtCleanApp() })
  2342. CloseModalError.on({ click: () => hiddenModalError() })
  2343. ModalLoggerContent.html(writeModalLogger())
  2344. CleanLoggerContent.on({ click: () => dtClearLogs() })
  2345. CloseModalLogger.on({ click: () => hiddenModalRegister() })
  2346. </script>
  2347. </body>
  2348. </html>

comments powered by Disqus