hiddifypanel 10.11.1__py3-none-any.whl → 10.12.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. hiddifypanel/VERSION +1 -1
  2. hiddifypanel/VERSION.py +2 -2
  3. hiddifypanel/auth.py +15 -5
  4. hiddifypanel/hutils/encode.py +0 -1
  5. hiddifypanel/hutils/proxy/__init__.py +1 -0
  6. hiddifypanel/hutils/proxy/shared.py +18 -10
  7. hiddifypanel/hutils/proxy/singbox.py +22 -21
  8. hiddifypanel/hutils/proxy/xray.py +26 -352
  9. hiddifypanel/hutils/proxy/xrayjson.py +391 -0
  10. hiddifypanel/hutils/random.py +4 -0
  11. hiddifypanel/models/config.py +7 -2
  12. hiddifypanel/models/config_enum.py +9 -5
  13. hiddifypanel/panel/admin/DomainAdmin.py +3 -2
  14. hiddifypanel/panel/admin/templates/model/user_list.html +44 -20
  15. hiddifypanel/panel/commercial/restapi/v1/tgmsg.py +14 -10
  16. hiddifypanel/panel/commercial/restapi/v2/user/apps_api.py +17 -23
  17. hiddifypanel/panel/common_bp/login.py +2 -2
  18. hiddifypanel/panel/user/templates/base_xray_config.json.j2 +2 -2
  19. hiddifypanel/panel/user/user.py +1 -1
  20. hiddifypanel/static/images/hiddify.png +0 -0
  21. hiddifypanel/static/images/hiddify1.png +0 -0
  22. hiddifypanel/static/new/assets/hiddify-logo-7617d937.png +0 -0
  23. hiddifypanel/static/new/assets/hiddify-logo-7617d937_old.png +0 -0
  24. hiddifypanel/templates/admin-layout.html +22 -11
  25. hiddifypanel/templates/master.html +48 -25
  26. hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
  27. hiddifypanel/translations/en/LC_MESSAGES/messages.po +25 -16
  28. hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
  29. hiddifypanel/translations/fa/LC_MESSAGES/messages.po +12 -5
  30. hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
  31. hiddifypanel/translations/pt/LC_MESSAGES/messages.po +8 -5
  32. hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
  33. hiddifypanel/translations/ru/LC_MESSAGES/messages.po +108 -47
  34. hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
  35. hiddifypanel/translations/zh/LC_MESSAGES/messages.po +108 -55
  36. hiddifypanel/translations.i18n/en.json +15 -13
  37. hiddifypanel/translations.i18n/fa.json +4 -2
  38. hiddifypanel/translations.i18n/pt.json +3 -1
  39. hiddifypanel/translations.i18n/ru.json +50 -48
  40. hiddifypanel/translations.i18n/zh.json +58 -56
  41. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/METADATA +1 -1
  42. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/RECORD +46 -43
  43. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/LICENSE.md +0 -0
  44. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/WHEEL +0 -0
  45. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/entry_points.txt +0 -0
  46. {hiddifypanel-10.11.1.dist-info → hiddifypanel-10.12.0.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,7 @@ msgid "Actions"
24
24
  msgstr "Действия"
25
25
 
26
26
  msgid "Active"
27
- msgstr ""
27
+ msgstr "Активный"
28
28
 
29
29
  msgid "Active Users"
30
30
  msgstr "Активные пользователи"
@@ -90,7 +90,7 @@ msgid "Can add sub admin"
90
90
  msgstr "👥 Может добавлять администраторов"
91
91
 
92
92
  msgid "Can not connect to Cloudflare."
93
- msgstr ""
93
+ msgstr "Не удаётся подключиться к Cloudflare."
94
94
 
95
95
  msgid "Check again"
96
96
  msgstr "Проверить снова"
@@ -114,7 +114,7 @@ msgid "Close"
114
114
  msgstr "Закрыть"
115
115
 
116
116
  msgid "Commercial use"
117
- msgstr ""
117
+ msgstr "Коммерческое использование"
118
118
 
119
119
  msgid "Config file is incorrect"
120
120
  msgstr "Конфигурационный файл неверен"
@@ -141,7 +141,7 @@ msgid "Create Package"
141
141
  msgstr "Создать пакет"
142
142
 
143
143
  msgid "Current Domain"
144
- msgstr ""
144
+ msgstr "Текущий Домен"
145
145
 
146
146
  msgid ""
147
147
  "Dear {}\n"
@@ -215,6 +215,8 @@ msgid ""
215
215
  "Domain IP=%(domain_ip)s is not matched with your ip=%(server_ip)s which is "
216
216
  "required in direct mode"
217
217
  msgstr ""
218
+ "IP Домена не совпадает с Вашим IP Сервера, который необходим для \"Прямого "
219
+ "Режима\""
218
220
 
219
221
  msgid "Domain can not be resolved! there is a problem in your domain"
220
222
  msgstr ""
@@ -229,6 +231,52 @@ msgstr "Домен?"
229
231
 
230
232
  msgid "Donation.description"
231
233
  msgstr ""
234
+ "✳️ Нам нужна ваша помощь в разработке нашего проекта!\n"
235
+ " <br>\n"
236
+ " Если вы разработчик или создатель контента, свяжитесь с нами по адресу <a href='mailto:info@hiddify.com'>info@hiddify.com</a>\n"
237
+ " <br><br>\n"
238
+ " \n"
239
+ " ℹ️ Также нам нужна финансовая помощь для дальнейшего развития этой панели и нашего сервиса (мы некоммерческая организация).\n"
240
+ " <br>\n"
241
+ " <h5>Способы оплаты:</h5>\n"
242
+ " <ul>\n"
243
+ " <li> <div class='btn-group'>\n"
244
+ " <a role='button' data-copy='EQCWnykA-YhavOXgH3sf-uxtXLjy83_9n5bJPGRPE8r2247_' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
245
+ " <a data-copy='EQCWnykA-YhavOXgH3sf-uxtXLjy83_9n5bJPGRPE8r2247_' role='button' class='btn btn-info share-link'>TON</a> </div></li>\n"
246
+ " \n"
247
+ " <li> <div class='btn-group'>\n"
248
+ " <a role='button' data-copy='TXZtFUxyBPMSykAWogu7C4zmbjySKqMcDE' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
249
+ " <a data-copy='TXZtFUxyBPMSykAWogu7C4zmbjySKqMcDE' role='button' class='btn btn-info share-link'>USDT (TRC20)</a> </div></li>\n"
250
+ " \n"
251
+ " <li> <div class='btn-group'>\n"
252
+ " <a role='button' data-copy='MCHoh7xwaDBBnQgANPpBtXiekagV6KpdrM' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
253
+ " <a data-copy='MCHoh7xwaDBBnQgANPpBtXiekagV6KpdrM' role='button' class='btn btn-info share-link'>Litecoin</a> </div></li>\n"
254
+ " \n"
255
+ " <li> <div class='btn-group'>\n"
256
+ " <a role='button' data-copy='0xF5CFc65ee336B377C2a37EA3BCD0CaD0d0F0CbA0' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
257
+ " <a data-copy='0xF5CFc65ee336B377C2a37EA3BCD0CaD0d0F0CbA0' role='button' class='btn btn-info share-link'>Ethereum</a> </div></li>\n"
258
+ " \n"
259
+ " <li> <div class='btn-group'>\n"
260
+ " <a role='button' data-copy='bc1qkfp7n3wxu2zc9mdy20cf27d5pujj65myww8f60' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
261
+ " <a data-copy='bc1qkfp7n3wxu2zc9mdy20cf27d5pujj65myww8f60' role='button' class='btn btn-info share-link'>Bitcoin</a> </div></li>\n"
262
+ " \n"
263
+ " <li> <div class='btn-group'>\n"
264
+ " <a role='button' data-copy='DPerFS2vCu5XnE3He32BaPVTkUDcKLsEaj' class='btn btn-secondary copy-link'><i class='fa-regular fa-copy'></i></a> \n"
265
+ " <a data-copy='DPerFS2vCu5XnE3He32BaPVTkUDcKLsEaj' role='button' class='btn btn-info share-link'>Dogecoin</a> </div></li>\n"
266
+ " </ul>\n"
267
+ " \n"
268
+ " <br>\n"
269
+ " \n"
270
+ " Другая помощь:\n"
271
+ " <ul>\n"
272
+ " <li>👥 Поделиться Hiddify Manager с друзьями</li>\n"
273
+ " <li>📝Python Developer</li>\n"
274
+ " <li>📝Swift Developer</li>\n"
275
+ " <li>📝Flutter Developer</li>\n"
276
+ " <li>📝Go Developer</li>\n"
277
+ " <li>🖥Content Providers</li>\n"
278
+ " </ul>\n"
279
+ " Свяжитесь с нами <a href='mailto:info@hiddify.com'>info@hiddify.com</a>."
232
280
 
233
281
  msgid "Donation.title"
234
282
  msgstr "Пожертвование"
@@ -287,7 +335,7 @@ msgid "Hiddify Android"
287
335
  msgstr "Hiddify Android"
288
336
 
289
337
  msgid "HiddifyClash"
290
- msgstr ""
338
+ msgstr "HiddifyClash"
291
339
 
292
340
  msgid "HiddifyN intro"
293
341
  msgstr ""
@@ -340,6 +388,8 @@ msgid ""
340
388
  " href='%(sub)s'>this universal link</a> to copy and paste it on\n"
341
389
  " your application, or:"
342
390
  msgstr ""
391
+ "Если приложение не открывается автоматически, нажмите <a class='btn btn-primary copy-link'\n"
392
+ " href='%(sub)s'>универсальную ссылку</a>, чтобы скопировать и вставить ее в ваше приложение:"
343
393
 
344
394
  msgid "Import"
345
395
  msgstr "Импортировать в приложение"
@@ -354,6 +404,7 @@ msgid ""
354
404
  "In CDN mode, Domain IP=%(domain_ip)s should be different to your "
355
405
  "ip=%(server_ip)s"
356
406
  msgstr ""
407
+ "В CDN Режиме, IP адрес Домена должен отличаться от IP адреса Вашего Сервера"
357
408
 
358
409
  msgid ""
359
410
  "In this section, you can add your domain. You need to add at least one "
@@ -375,7 +426,7 @@ msgid "Install Hiddify Application"
375
426
  msgstr "Установка панели Hidify"
376
427
 
377
428
  msgid "Invalid IP or domain"
378
- msgstr ""
429
+ msgstr "Неверный IP или Домен"
379
430
 
380
431
  msgid "Invalid REALITY hostnames"
381
432
  msgstr "Неверные имена хостов REALITY"
@@ -489,7 +540,7 @@ msgid "Override Root Admin"
489
540
  msgstr "Переопределение администратора"
490
541
 
491
542
  msgid "Owner can not be deleted!"
492
- msgstr ""
543
+ msgstr "Владелец не может быть удалён!"
493
544
 
494
545
  msgid "Package Days"
495
546
  msgstr "📆 Дни пакета"
@@ -544,6 +595,9 @@ msgstr "Выберите по крайней мере один файл."
544
595
  msgid "Please select at least one record."
545
596
  msgstr "Выберите по крайней мере одну запись."
546
597
 
598
+ msgid "Please select at least one user"
599
+ msgstr ""
600
+
547
601
  msgid "Please select one of the following applications:"
548
602
  msgstr ""
549
603
  "📍 Пожалуйста, выберите одно из следующих приложений:\n"
@@ -676,6 +730,9 @@ msgstr "Выбрать все записи"
676
730
  msgid "Select record"
677
731
  msgstr "Выберите запись"
678
732
 
733
+ msgid "Seleted Users"
734
+ msgstr ""
735
+
679
736
  msgid "Send Message to User's Telegram"
680
737
  msgstr "📣 Отправить сообщение в Telegram пользователя"
681
738
 
@@ -683,10 +740,10 @@ msgid "Sending"
683
740
  msgstr "Отправка..."
684
741
 
685
742
  msgid "Should be a valid domain"
686
- msgstr ""
743
+ msgstr "Должен быть действительный Домен"
687
744
 
688
745
  msgid "Should be a valid uuid"
689
- msgstr ""
746
+ msgstr "Должен быть действительный UUID"
690
747
 
691
748
  msgid "Show Domains"
692
749
  msgstr "Показать конфигурации доменов"
@@ -792,12 +849,9 @@ msgid "User is inactive"
792
849
  msgstr "Пользователь неактивен"
793
850
 
794
851
  msgid ""
795
- "User usage will be updated every 6 minutes. To update it now click <a href=\"%(link)s\"\n"
796
- " class=\"btn btn-info\">here</a>"
852
+ "User usage will be updated every 6 minutes. To update it now click <a "
853
+ "href=\"%(link)s\" class=\"btn btn-info\">here</a>"
797
854
  msgstr ""
798
- "Информация об использовании пользователя будет обновляться каждые 6 минут. "
799
- "Чтобы обновить его сейчас, нажмите <a href=\"%(link)s\"<inlang-"
800
- "LineFeed>class=\"btn btn-info\"&gt;здесь</a>"
801
855
 
802
856
  msgid "V2rayNG"
803
857
  msgstr ""
@@ -971,7 +1025,7 @@ msgid "admin.menu.proxy"
971
1025
  msgstr "Прокси"
972
1026
 
973
1027
  msgid "admin.menu.proxy_stats"
974
- msgstr ""
1028
+ msgstr "Прокси Статус"
975
1029
 
976
1030
  msgid "admin.menu.support"
977
1031
  msgstr "Помощь"
@@ -1012,13 +1066,13 @@ msgid "app.foxray.title"
1012
1066
  msgstr "Фоксрей"
1013
1067
 
1014
1068
  msgid "app.hiddify-clash-android.description"
1015
- msgstr ""
1069
+ msgstr "app.hiddify-clash-android.description"
1016
1070
 
1017
1071
  msgid "app.hiddify-clash-android.title"
1018
1072
  msgstr "Hiddify Столкновение"
1019
1073
 
1020
1074
  msgid "app.hiddify-clash-desktop.description"
1021
- msgstr ""
1075
+ msgstr "app.hiddify-clash-desktop.description"
1022
1076
 
1023
1077
  msgid "app.hiddify-clash-desktop.title"
1024
1078
  msgstr "Hiddify Столкновение"
@@ -1048,7 +1102,7 @@ msgid "app.loon.title"
1048
1102
  msgstr "гагара"
1049
1103
 
1050
1104
  msgid "app.nekobox.description"
1051
- msgstr ""
1105
+ msgstr "app.nekobox.description"
1052
1106
 
1053
1107
  msgid "app.nekobox.title"
1054
1108
  msgstr "НекоБокс"
@@ -1243,10 +1297,10 @@ msgid "config.country.label"
1243
1297
  msgstr "🌍 Страна"
1244
1298
 
1245
1299
  msgid "config.create_easysetup_link.description"
1246
- msgstr ""
1300
+ msgstr "config.create_easysetup_link.description"
1247
1301
 
1248
1302
  msgid "config.create_easysetup_link.label"
1249
- msgstr ""
1303
+ msgstr "config.create_easysetup_link.label"
1250
1304
 
1251
1305
  msgid "config.db_version.description"
1252
1306
  msgstr "Описание версии базы данных"
@@ -1255,10 +1309,10 @@ msgid "config.db_version.label"
1255
1309
  msgstr "Label версии базы данных"
1256
1310
 
1257
1311
  msgid "config.dbvalues.description"
1258
- msgstr ""
1312
+ msgstr "config.dbvalues.description"
1259
1313
 
1260
1314
  msgid "config.dbvalues.label"
1261
- msgstr ""
1315
+ msgstr "config.dbvalues.label"
1262
1316
 
1263
1317
  msgid "config.decoy_domain.description"
1264
1318
  msgstr ""
@@ -1320,10 +1374,10 @@ msgid "config.firewall.label"
1320
1374
  msgstr "🛡️ Firewall"
1321
1375
 
1322
1376
  msgid "config.first_setup.description"
1323
- msgstr ""
1377
+ msgstr "config.first_setup.description"
1324
1378
 
1325
1379
  msgid "config.first_setup.label"
1326
- msgstr ""
1380
+ msgstr "config.first_setup.label"
1327
1381
 
1328
1382
  msgid "config.general.description"
1329
1383
  msgstr "Это общие настройки системы."
@@ -1333,15 +1387,18 @@ msgstr "Общие настройки"
1333
1387
 
1334
1388
  msgid "config.grpc_enable.description"
1335
1389
  msgstr ""
1390
+ "gRPC — это современная высокопроизводительная платформа удаленного вызова "
1391
+ "процедур (RPC) с открытым исходным кодом. Его можно использовать в "
1392
+ "поддерживаемых CDN."
1336
1393
 
1337
1394
  msgid "config.grpc_enable.label"
1338
- msgstr ""
1395
+ msgstr "➿ Включить gRPC"
1339
1396
 
1340
1397
  msgid "config.hidden.description"
1341
- msgstr ""
1398
+ msgstr "config.hidden.description"
1342
1399
 
1343
1400
  msgid "config.hidden.label"
1344
- msgstr ""
1401
+ msgstr "config.hidden.label"
1345
1402
 
1346
1403
  msgid "config.http.description"
1347
1404
  msgstr "Конфигурации HTTP можно установить в этом разделе"
@@ -1368,9 +1425,11 @@ msgstr "☑️ Разрешить соединение по HTTP"
1368
1425
 
1369
1426
  msgid "config.httpupgrade_enable.description"
1370
1427
  msgstr ""
1428
+ "HTTPUpgrade завершает запрос и ответ на обновление HTTP 1.1, прежде чем использовать соединение напрямую. Он похож на WebSocket тем, что создает канал направления, который может пересылаться многими обратными прокси-серверами и CDN, без необходимости решать все проблемы, связанные с самим протоколом WebSocket.\n"
1429
+ "⚠️ Недоступно в клиентах на базе Xray. Поддерживаются только клиенты HiddifyNext, Singbox и V2fly."
1371
1430
 
1372
1431
  msgid "config.httpupgrade_enable.label"
1373
- msgstr ""
1432
+ msgstr "🆙 Включить Метод HTTP Обновления"
1374
1433
 
1375
1434
  msgid "config.hysteria.description"
1376
1435
  msgstr ""
@@ -1383,10 +1442,10 @@ msgid "config.hysteria.label"
1383
1442
  msgstr "Hysteria"
1384
1443
 
1385
1444
  msgid "config.hysteria_down_mbps.description"
1386
- msgstr ""
1445
+ msgstr "Hysteria Максимальная Скорость Входящей Загрузки"
1387
1446
 
1388
1447
  msgid "config.hysteria_down_mbps.label"
1389
- msgstr ""
1448
+ msgstr "⬇️ Hysteria Входящая Загрузка (mbps)"
1390
1449
 
1391
1450
  msgid "config.hysteria_enable.description"
1392
1451
  msgstr "Включение протокола Hysteria на основе UDP"
@@ -1395,10 +1454,10 @@ msgid "config.hysteria_enable.label"
1395
1454
  msgstr "Включить Hysteria"
1396
1455
 
1397
1456
  msgid "config.hysteria_obfs_enable.description"
1398
- msgstr ""
1457
+ msgstr "Включить Hysteria Obfuscation (Salamander)"
1399
1458
 
1400
1459
  msgid "config.hysteria_obfs_enable.label"
1401
- msgstr ""
1460
+ msgstr "🎛 Включить Hysteria OBFS"
1402
1461
 
1403
1462
  msgid "config.hysteria_port.description"
1404
1463
  msgstr "Hysteria UDP-порт например 5678"
@@ -1407,13 +1466,13 @@ msgid "config.hysteria_port.label"
1407
1466
  msgstr "Hysteria Порт"
1408
1467
 
1409
1468
  msgid "config.hysteria_up_mbps.description"
1410
- msgstr ""
1469
+ msgstr "Hysteria Максимальная Скорость Исходящей Загрузки"
1411
1470
 
1412
1471
  msgid "config.hysteria_up_mbps.label"
1413
- msgstr ""
1472
+ msgstr "⬆️ Hysteria Исходящая Загрузка (mbps)"
1414
1473
 
1415
1474
  msgid "config.is_parent.description"
1416
- msgstr ""
1475
+ msgstr "config.is_parent.description"
1417
1476
 
1418
1477
  msgid "config.is_parent.label"
1419
1478
  msgstr "Главная панель"
@@ -1445,10 +1504,10 @@ msgid "config.lang.label"
1445
1504
  msgstr "🗺️ Язык раздела пользователя"
1446
1505
 
1447
1506
  msgid "config.last_hash.description"
1448
- msgstr ""
1507
+ msgstr "config.last_hash.description"
1449
1508
 
1450
1509
  msgid "config.last_hash.label"
1451
- msgstr ""
1510
+ msgstr "config.last_hash.label"
1452
1511
 
1453
1512
  msgid "config.license.description"
1454
1513
  msgstr ""
@@ -1459,28 +1518,28 @@ msgid "config.license.label"
1459
1518
  msgstr "License Code"
1460
1519
 
1461
1520
  msgid "config.mux.description"
1462
- msgstr ""
1521
+ msgstr "Настройки конфигурации MUX (Multiplex)"
1463
1522
 
1464
1523
  msgid "config.mux.label"
1465
- msgstr ""
1524
+ msgstr "Настройки MUX"
1466
1525
 
1467
1526
  msgid "config.mux_brutal_down_mbps.description"
1468
- msgstr ""
1527
+ msgstr "TCP-Brutal Максимальная Скорость Входящей Загрузки"
1469
1528
 
1470
1529
  msgid "config.mux_brutal_down_mbps.label"
1471
- msgstr ""
1530
+ msgstr "⬇️ MUX Brutal Входящая Загрузка (mbps)"
1472
1531
 
1473
1532
  msgid "config.mux_brutal_enable.description"
1474
- msgstr ""
1533
+ msgstr "Включить алгоритм управления перегрузкой TCP-Brutal"
1475
1534
 
1476
1535
  msgid "config.mux_brutal_enable.label"
1477
- msgstr ""
1536
+ msgstr "☣️ MUX Brutal"
1478
1537
 
1479
1538
  msgid "config.mux_brutal_up_mbps.description"
1480
- msgstr ""
1539
+ msgstr "TCP-Brutal Максимальная Скорость Исходящей Загрузки"
1481
1540
 
1482
1541
  msgid "config.mux_brutal_up_mbps.label"
1483
- msgstr ""
1542
+ msgstr "⬆️ MUX Brutal Исходящая Загрузка (mbps)"
1484
1543
 
1485
1544
  msgid "config.mux_enable.description"
1486
1545
  msgstr ""
@@ -1871,8 +1930,10 @@ msgstr "🔐 Токен Telegram-бота"
1871
1930
 
1872
1931
  msgid "config.telegram_enable.description"
1873
1932
  msgstr ""
1874
- "Telegram MTProto используется для инкапсуляции Telegram Proxy в качестве "
1875
- "обычного tls-трафика"
1933
+ "<p data-pm-slice=\"1 1 []\">Telegram MTProto используется для инкапсуляции "
1934
+ "Telegram Proxy в качестве обычного tls-трафика<br>⚠️<span "
1935
+ "style=\"color:#d32f2f;\"><strong> Этот протокол требует прямого "
1936
+ "домена</strong></span></p>"
1876
1937
 
1877
1938
  msgid "config.telegram_enable.label"
1878
1939
  msgstr "✔️ Включить Telegram MTProto"