గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

"నేను ఈ గందరగోళాన్ని వారసత్వంగా పొందాను,
సిగ్గులేని జెల్లోతో ప్రారంభించి; లింక్డ్ఇన్
మరియు టెలిగ్రామ్ ప్లాట్‌ఫారమ్‌లో "అందరితో" ముగుస్తుంది
నా ప్రపంచంలో.

ఆపై ఎక్కిళ్ళు,
అధికారి హడావిడిగా మరియు బిగ్గరగా జోడించారు:
కానీ నేను విషయాలను క్రమంలో ఉంచుతాను (ఇక్కడ ITలో)"
(...).

దురోవ్, తనకు భయపడాల్సిన అధికార రాజ్యాలు, సైఫర్‌పంక్ మరియు రోస్కోమ్నాడ్జోర్ మరియు వారి DPI ఫిల్టర్‌లతో కూడిన బంగారు కవచాలు అతనికి నిజంగా ఇబ్బంది కలిగించవని సరిగ్గా నమ్ముతాడు.
(రాజకీయ సాంకేతికత)

నా సాంకేతిక విధానం సరళమైనది, రూనెట్‌లో అజాగ్రత్తగా నిరోధించడంపై నా ఆలోచనలను నేను ఇక్కడ వివరించగలను, కానీ ఆధునిక రష్యన్ మరియు హబ్ర్ వినియోగదారుల యొక్క ప్రగతిశీల పౌరులు ప్రస్తుత ప్రభుత్వం యొక్క వృత్తిపరమైన అనైతికతను వారి స్వంత చర్మంలో అనుభవించారని నేను నమ్ముతున్నాను, కాబట్టి నేను వీటిని పరిమితం చేస్తాను ఒకే పదబంధం: మా సాంకేతిక విధానం “డిజిటల్ రెసిస్టెన్స్” . "బంధువులు మరియు స్నేహితులకు స్థిరమైన కమ్యూనికేషన్ ఛానెల్‌ని అందించడం."

MTProto ప్రాక్సీ టెలిగ్రామ్‌ని అమలు చేస్తోంది

  • సంక్లిష్టత యొక్క సాంకేతిక స్థాయి "సులభం", ఉదాహరణకు, మీరు ఈ చీట్ షీట్‌ను అనుసరిస్తే.
  • విశ్వసనీయత స్థాయి “సగటు కంటే ఎక్కువ”: డాకర్ చిత్రం స్థిరంగా పనిచేస్తుంది, డెవలపర్‌లు వారి అధికారిక టెలిగ్రామ్ డాక్యుమెంటేషన్‌లో వ్రాసినట్లుగా, ప్రతిరోజూ పునఃప్రారంభించవలసిన అవసరం లేదు, అయితే కంటైనర్‌లో బహుశా కొన్ని దుర్బలత్వాలు ఉండవచ్చు.
  • ప్రతిఘటన/ఆందోళన స్థాయి - 10 మంది ISIS సభ్యులు వారి కుట్రలను "బంధువులు ఉపయోగించుకుంటారు" అల్లుతున్నారు, నిషేధం RKN నుండి అన్ని సమయాలలో కూడా (వసంతకాలం నుండి) రాలేదు.
  • విశ్వసనీయ స్థాయి "పబ్లిక్ బేబీ అపనమ్మకం", క్లయింట్ వైపు సమస్య (కొంతమంది స్నేహితులు నా MtprotoProxy గురించి అనుమానిస్తున్నారు).
  • టెస్టోస్టెరాన్ స్థాయిలు - "ఎక్కువగా రాలేదు."
  • ఆర్థిక ఖర్చులు - "0₽".
  • ఆర్థిక బహుమతి - "పౌరుడు దురోవ్‌పై ఆధారపడదు." ప్రమోషన్ - ప్రకటనలను విధించే సామర్థ్యం.

మేము Amazon-ec2: t2.micro యొక్క “ఉచిత / వ్యక్తిగత” సామర్థ్యాలపై మా TelegramProxyని పెంచుతాము. నేను వాడినాను కారు.

సరే, మీ ఉచిత సర్వర్‌ని అమలు చేసారు, అధికారిక వెబ్‌సైట్‌కి వెళ్లండి డాకర్‌హబ్ మరియు డాకర్ కంటైనర్‌ను డౌన్‌లోడ్ చేయండి.

కొన్ని ఇమేజ్, ఫైల్ లేదా మ్యాజిక్ బటన్ కోసం వెతకాల్సిన అవసరం లేదు - "అవి అక్కడ లేవు", అన్ని మ్యాజిక్‌లు CLIలో చేయబడతాయి:

$ docker pull telegrammessenger/proxy #образ скачан.

కానీ "అది"కి ముందు, CLI కోసం డాకర్‌ని ఇన్‌స్టాల్ చేయండి:

sudo apt-get install docker.io docker

ఇంకా, MtprotoProxyTelegram యొక్క అధికారిక డాక్యుమెంటేషన్‌లో, మేము ఈ క్రింది వాటిని చేయడానికి అందిస్తున్నాము:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

ఈ ఆదేశం తర్వాత, టెర్మినల్ అవుట్‌పుట్‌లో HEX స్ట్రింగ్ కనిపిస్తుంది, కానీ మేము దానిపై ఆసక్తి చూపడం లేదు.

మేము CLIలో వ్రాస్తాము:

$ docker logs mtproto-proxy

మరియు మేము అవసరమైన డేటాను పొందుతాము:

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది
ఈ లాగ్ అవుట్‌పుట్‌లో, మనం చూపబడతాము (స్మెర్డ్):

A) మా సర్వర్ ip (బాహ్య సర్వర్ ip);
B) మరియు యాదృచ్ఛిక రహస్యం - HEXలో యాదృచ్ఛిక స్ట్రింగ్.

మా MtproProxyని నమోదు చేయడానికి ముందు, మీరు ప్రధాన ఫైర్‌వాల్‌ను iptables ద్వారా కాన్ఫిగర్ చేయాలి (మీరు ఈ VPCకి ట్రాఫిక్‌ను ఎలా దారి మళ్లించినా, అది కొంటెగా ఉంటుంది, ఎందుకంటే Amazon-EC2లోని ప్రధాన ఫైర్‌వాల్ వెబ్ ఇంటర్‌ఫేస్‌లో ఉంది మరియు దానికంటే ఎక్కువ ప్రాధాన్యత ఉంది. iptables).

మేము వెళ్తాము"కన్సోల్ Amazon-EC2" సెక్యూరిటీ గ్రూప్‌లో మరియు ఓపెన్ ఇన్‌కమింగ్ పోర్ట్ 443 (లాజికల్ మాస్కింగ్ ట్రాఫిక్ మొదటి సారి).

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

మేము లాగ్ నుండి మా “ip మరియు రహస్య” డేటాను తీసుకొని టెలిగ్రామ్ మెసెంజర్‌కి వెళ్లి, అధికారిక MTProxy అడ్మిన్ బాట్ (@MTProxybot)ని కనుగొని, మా MtproProxyని నమోదు చేస్తాము: [/newproxy] ఆదేశాన్ని అమలు చేసి [our_ip:443], మరియు తర్వాత మా [రహస్యం /HEX].

డేటాను నమోదు చేసేటప్పుడు మీరు గందరగోళానికి గురైతే, బోట్ కోపం తెచ్చుకుని మిమ్మల్ని ఇక్కడికి పంపుతుంది ...

మీరు ఎర్రర్‌లు లేకుండా రెండు పంక్తులను పూరిస్తే, మీరు ఎవరితోనైనా భాగస్వామ్యం చేయగల మీ ప్రస్తుత MtprotoProxyTelegramకి ఆమోదం మరియు వర్కింగ్ లింక్‌ని అందుకుంటారు.

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

అలాగే, ఈ బాట్ ద్వారా, మీరు మీ స్పాన్సర్‌షిప్ ఛానెల్‌ని జోడించవచ్చు (కానీ చాట్ కాదు), ఇక్కడ మీరు మీ సర్వర్‌కు కనెక్ట్ చేసిన వినియోగదారులపై మీ అభిప్రాయాలను విధించవచ్చు లేదా మీరు "స్పామ్" చేయలేరు మరియు మీ సంభావ్య కస్టమర్‌లను ఇబ్బంది పెట్టలేరు పిన్ చేయబడిన మెసెంజర్ జాబితాలో ఛానెల్‌ని చూపుతోంది.

బోట్ గురించి మరికొన్ని పదాలు, ఇక్కడ మీరు గణాంకాలను అభ్యర్థించవచ్చు, కానీ "డోనట్ కూడా". మీకు మఖచ్కల వెనుక "ఫ్రీలోడర్ల గుంపు" ఉన్నప్పుడు స్పష్టంగా, "గణాంకాలు" అందుబాటులో ఉంటాయి.

పర్యవేక్షణ

మన సర్వర్‌కు ఎంత మంది వినియోగదారులను కనెక్ట్ చేయవచ్చు? మరియు ఏమైనప్పటికీ, అక్కడ ఎవరు / ఏమిటి? ఏమిటి? మరియు ఎన్ని?

అధికారిక డాక్యుమెంటేషన్ ప్రకారం అక్కడ ఏమి ఉందో మేము పరిశీలిస్తాము ... అవును, ఇక్కడ, ఇలా చేయండి:

$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.

“మీ జేబును వెడల్పుగా ఉంచండి” ప్రతిపాదిత ఆదేశాల ప్రకారం, మేము ఎల్లప్పుడూ ఇలాంటి లోపాన్ని అందుకుంటాము:

«కర్ల్: (7) లోకల్ హోస్ట్ పోర్ట్ 2398కి కనెక్ట్ చేయడంలో విఫలమైంది: కనెక్షన్ నిరాకరించబడింది»

మా ప్రాక్సీ పని చేస్తుంది. కానీ! బాగెల్, మనకు లభించే గణాంకాలు కాదు.

మీరు రెడ్-ఐడ్ కోసం పనులు చేయవచ్చు: తనిఖీ చేయండి

$ netstat -an | grep 2398 и...

టెలిగ్రామ్ డెవలపర్‌ల వెనుక ఇది మరొక జాంబ్ అని నేను మొదట అనుకున్నాను (మరియు నేను ఇప్పటికీ అలా అనుకుంటున్నాను), అప్పుడు నేను తాత్కాలిక మంచి పరిష్కారాన్ని కనుగొన్నాను: డాకర్ కంటైనర్‌ను ఫైల్‌తో పాలిష్ చేయండి.

తరువాత, ఒక ఇన్ఫా నా దృష్టిని ఆకర్షించింది:

"గణాంకాలు" చుట్టూ రోస్కోమ్నాడ్జోర్ యొక్క రాష్ట్ర నృత్యాల గురించి.

“మేము ఫైర్‌హోల్ ప్రాజెక్ట్ యొక్క డేటాబేస్‌లను ఉపయోగించి మా సర్వర్‌లలో కొన్ని పబ్లిక్ ప్రాక్సీలను బ్లాక్ చేసాము. ఈ ప్రాజెక్ట్ పబ్లిక్ ప్రాక్సీలతో జాబితాలను పర్యవేక్షిస్తుంది మరియు వాటితో డేటాబేస్‌లను చేస్తుంది.

ఆ క్షణం నుండి (అంటే దాదాపు రెండు రోజులు ఇప్పటికే), మా రష్యన్ ప్రాక్సీ యొక్క ఒక్క IP చిరునామా కూడా బ్లాక్ చేయబడలేదు.

3. Roskomnadzorకి దాదాపుగా అభేద్యమైన ప్రాక్సీని ఎలా తయారు చేయాలో మరియు పబ్లిక్ ప్రాక్సీలను నిరోధించడానికి స్క్రిప్ట్‌ను ఎలా భాగస్వామ్యం చేయాలో మేము మీకు తెలియజేస్తాము.

- MTProto ప్రాక్సీ డాకర్ కంటైనర్ (లేదా డెమోన్)ని తాజా వెర్షన్‌కి అప్‌డేట్ చేయండి: RKN పాత వెర్షన్‌లను స్టాటిస్టిక్స్ పోర్ట్ ద్వారా గణిస్తుంది, ఇది 0.0.0.0కి కట్టుబడి ఉంటుంది మరియు మొత్తం ఇంటర్నెట్‌కు ప్రత్యేకంగా గుర్తించబడుతుంది. ఇంకా మంచిది, iptables ఉపయోగించి అవసరమైన పోర్ట్‌లను తెరిచి, మిగిలిన వాటిని మూసివేయండి (డాకర్ కంటైనర్ విషయంలో, మీరు FORWARD నియమాన్ని ఉపయోగించాలని గుర్తుంచుకోండి).

— Roskomnadzor చాలా కాలం క్రితం ట్రాఫిక్‌ను ఎలా డంప్ చేయాలో నేర్చుకున్నాడు: వారు HTTP మరియు SOCKS5 ప్రాక్సీల లోపల కాల్‌లను చూస్తారు మరియు వారు MTProto ప్రాక్సీ అస్పష్టత యొక్క పాత సంస్కరణను కూడా చూస్తారు.

అటువంటి డంప్‌లను ఇన్‌స్టాల్ చేసిన కొంతమంది ప్రొవైడర్ల క్లయింట్లు అటువంటి ప్రాక్సీల ద్వారా టెలిగ్రామ్‌ను యాక్సెస్ చేసినప్పుడు, RKN అటువంటి అభ్యర్థనలను చూసి వెంటనే ఈ ప్రాక్సీలను బ్లాక్ చేస్తుంది. పాత అస్పష్టతతో MTProto ప్రాక్సీకి కూడా ఇదే వర్తిస్తుంది.

పరిష్కారం: ప్రాక్సీకి కనెక్ట్ చేసే క్లయింట్‌లకు ప్రారంభంలో ddతో మాత్రమే రహస్యాన్ని పంపిణీ చేయండి (mtproto ప్రాక్సీ యొక్క సెట్టింగ్‌లలో dd అదనపు అక్షరాలను పేర్కొనవలసిన అవసరం లేదు). ఇది డంపైల్స్ గుర్తించలేని అస్పష్టత సంస్కరణను ప్రారంభిస్తుంది.

మరియు HTTP లేదా SOCKS5 ప్రాక్సీలు లేవు.

- సర్దుబాటు, దీని సహాయంతో టెలిగ్రామ్ ప్రాక్సీ యొక్క ప్రతి యజమాని, క్రమం తప్పకుండా RKNచే నిషేధించబడతారు, పూర్తిగా (లేదా దాదాపు పూర్తిగా) నిరోధించడాన్ని ఆపివేయవచ్చు (మరియు అదే సమయంలో RKN అబద్ధం చెబుతుందని నిర్ధారించుకోండి).

పబ్లిక్ ప్రాక్సీలను నిషేధించే స్క్రిప్ట్ మరియు దాని కోసం ఒక చిన్న మాన్యువల్.

మూలం

మా ప్రాక్సీ పాశ్చాత్య అనుకూలమైనది, వసంతకాలం మరియు చల్లని వేసవి రోజులలో నాకు ఎటువంటి సమస్యలు / అడ్డంకులు ఎదురుకాలేదు, ఇది సృజనాత్మక పనిని కూడా ఆకర్షించలేదు, కాబట్టి నేను వేగాన్ని కోల్పోలేదు మరియు దీనికి dd* ఉపసర్గను జోడించలేదు కీ.

MtprotoProxyTelegram యొక్క అధికారిక సూచనల ప్రకారం మాన్యువల్ “గణాంకాలు పొందడం/పర్యవేక్షించడం” పని చేయడం లేదు/పాతది కాదు, మీరు డాకర్ చిత్రాన్ని రిపేర్ చేయాల్సి ఉంటుంది.

మేము దాన్ని సరిచేస్తాము.

కంటైనర్ ఇంకా నడుస్తోంది:

$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=ваш_предыдущий_секрет_hex telegrammessenger/proxy:latest

గణాంకాలను తనిఖీ చేద్దాం:

$ curl http://localhost:2398/stats

కర్ల్: (7) 0.0.0.0 పోర్ట్ 2398కి కనెక్ట్ చేయడంలో విఫలమైంది: కనెక్షన్ నిరాకరించబడింది
గణాంకాలు ఇంకా అందుబాటులో లేవు..!

డాకర్ కంటైనర్ IDని కనుగొనండి:

$ docker ps

కంటైనర్ ID చిత్రం కమాండ్ సృష్టించబడిన స్థితి పోర్ట్‌ల పేర్లు
f423c209cfdc టెలిగ్రామ్‌మెసెంజర్/ప్రాక్సీ:తాజా "/bin/sh -c '/bin/ba..." సుమారు ఒక గంట క్రితం ఒక నిమిషం పైకి 0.0.0.0:443->443/tcp mtproto-proxy2

మేము డాకర్ కంటైనర్ లోపల మా చార్టర్‌తో వెళ్తాము:

$ sudo docker exec -it f423c209cfdc /bin/bash

$ apt-get update
$ apt-get install nano
$ nano -$ run.sh

మరియు "run.sh" స్క్రిప్ట్ యొక్క చివరి పంక్తిలో, తప్పిపోయిన ఫ్లాగ్‌ను జోడించండి:

«--http-గణాంకాలు»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u రూట్ $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

"--http-stats"ని జోడించండి, ఇలాంటివి పని చేయాలి:

«exec /usr/local/bin/mtproto-proxy -p 2398 --http-stats -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD»

Ctrl+o/Ctrl+x/Ctrl+d (సేవ్/నిష్క్రమించు నానో/ఎగ్జిట్ కంటైనర్).

మా డాకర్ కంటైనర్‌ను పునఃప్రారంభించండి:

$ docker restart mtproto-proxy2

ప్రతిదీ, ఇప్పుడు ఆదేశంపై ఉంది:

$ curl http://localhost:2398/stats #получаем объемную статистику

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది
గణాంకాలలో చాలా “చెత్త” ఉంది (దానిలో 1/3 తెరపై ఉంది), మారుపేరును సృష్టించండి:

$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash

డాకర్ కంటైనర్ దేని కోసం పాలిష్ చేయబడిందో మేము పొందుతాము: కనెక్షన్‌ల సంఖ్య మరియు లోడ్:

$ telega

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది
డాకర్ కంటైనర్ నడుస్తోంది, గణాంకాలు తిరుగుతున్నాయి.

ఖర్చు చేసిన వనరులు

మీరు స్టువర్ట్ రెడ్‌మ్యాన్‌గా ఉన్నంత కూల్‌గా, మీ ప్యాంటీలపై కూడా మీరు ఒక గుర్తును ఉంచారు. నడుస్తున్న డాకర్ చిత్రం పెద్ద పాదముద్రను వదిలివేస్తుంది.

డాకర్ చిత్రాల ప్రయోజనాలు మరియు అప్రయోజనాలను వివరించడంలో అర్ధమే లేదు, డాకర్ కంటైనర్ అనేది మినీ-వర్చువల్ మెషీన్, ఇది వర్చువల్‌బాక్స్ వంటి “నిజమైన” వర్చువల్ మెషీన్ కంటే తక్కువ వనరులను వినియోగిస్తుంది, కానీ అది చేస్తుంది.

1) డాకర్-ఇమేజ్ గణాంకాలతో లేదా లేకుండా ప్రారంభించబడింది, ఇద్దరు క్లయింట్లు ఉల్లాసంగా లేదా పది - వనరులు ~ అదే విధంగా ఉపయోగించబడతాయి: మొత్తం CPU t75.మైక్రో పనితీరులో 2%.

2) మేము VPC సర్వర్ యొక్క పర్యవేక్షణను పరిశీలిస్తాము:

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

VPCలోని వనరుల వినియోగ గ్రాఫ్ నుండి, డాకర్ కంటైనర్ నిరంతరం మొత్తం గరిష్టంగా ~ 7,5% వినియోగిస్తున్నట్లు మేము చూస్తాము. CPU పనితీరు మరియు మే 28న నేను ఉద్దేశపూర్వకంగా/తాత్కాలికంగా ఆపివేశాను (గమనిక - OpenVPN & pptp కూడా సర్వర్‌లో అమలవుతున్నాయి).

ఈ సర్వర్‌కు 10% స్థిరమైన CPU వినియోగం ఎందుకు పరిమితి?

ఎందుకంటే Amazon EC2 నుండి పరిమితులు ఉన్నాయి మరియు అవి క్రెడిట్‌లలో లెక్కించబడతాయి:

గణాంకాలతో మీ MTProxy టెలిగ్రామ్‌ని అమలు చేస్తోంది

1 CPU క్రెడిట్ = 1 CPU ఒక నిమిషం పాటు 100% లోడ్‌తో పని చేస్తుంది మరియు మాకు 6 క్రెడిట్‌లు ఉన్నాయి (అంటే, గరిష్ట స్థాయిలలో, 100% CPU వినియోగం 6 నిమిషాల్లో సాధ్యమవుతుంది, ఆపై CPU పవర్ తగ్గుతుంది). ఇతర కలయికలు: ఉదాహరణకు, 1 CPU క్రెడిట్ = 1 CPU రెండు నిమిషాల పాటు 50% లోడ్‌తో రన్ అవుతుంది (అనగా మనం CPUని 50% లోడ్‌లో 12 నిమిషాల పాటు ఉపయోగించవచ్చు), లేదా, ఉదాహరణకు, స్థిరమైన 10%-వ CPU లోడ్ సమయంలో మొత్తం సమయం, మొదలైనవి.

కనుగొన్న

  • మేము "డిజిటల్ రెసిస్టెన్స్"లో భాగం. వారి "తండ్రులు మరియు తల్లులు" నమ్మకమైన కమ్యూనికేషన్ ఛానెల్‌ని అందించారు.
  • మీరు సర్వర్‌లో MtprotoProxyTelegram మరియు OpenVPNని కలిగి ఉంటే, కానీ ఇకపై, ఆలస్యం / పింగ్‌లు / వైఫల్యాలు ఉండవు, కానీ మీరు మీ t2 / మైక్రోతో నిరంతరం ప్రయోగాలు చేస్తుంటే, కమ్యూనికేషన్ బ్రేక్‌ల కోసం వేచి ఉండండి.
  • నా విదేశీ పింగ్ ~100-250ms, వాయిస్ కమ్యూనికేషన్‌లో జాప్యాలు లేవు.
  • అన్ని "దీని" కోసం ఆర్థిక ఖర్చులు (VPC వనరులతో సహా) = 0₽.

మీ కథనం యొక్క పునఃముద్రణ.

UPD: ఉపయోగకరమైన వ్యాఖ్యల కోసం కొంతమంది హాబ్రూజర్‌లకు ధన్యవాదాలు, వాస్తవానికి, ఇది సాధ్యమే (గణాంకాలు మద్దతు ఇస్తాయా?), అధికారిక Mtproto ప్రాక్సీ టెలిగ్రామ్ డాకర్ ఇమేజ్‌కి మెరుగైన అనలాగ్‌లు ఉన్నాయి.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి