āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻāĻŦāĻ‚ āϏāĻžāĻ‚āĻ—āĻ āύāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻŽāĻžāϞ⧋āϚāύāĻžāĨ¤ āĻ…āĻ‚āĻļ 1, āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ: āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞ⧇āĻ–āĻžāϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž - TL, MT

āϏāĻŽā§āĻĒā§āϰāϤāĻŋ, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻ•āϤāϟāĻž āĻ­āĻžāϞ⧋, āĻĻ⧁āϰāĻ­ āĻ­āĻžāχāϰāĻž āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϤ⧈āϰāĻŋāϤ⧇ āĻ•āϤāϟāĻž āĻŦ⧁āĻĻā§āϧāĻŋāĻĻā§€āĻĒā§āϤ āĻāĻŦāĻ‚ āĻ…āĻ­āĻŋāĻœā§āĻž, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻĒā§‹āĻ¸ā§āϟāϗ⧁āϞāĻŋ āĻšāĻžāĻŦā§āϰ⧇āϤ⧇ āφāϰāĻ“ āĻĒā§āϰāĻžāϝāĻŧāχ āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇, āϖ⧁āĻŦ āĻ•āĻŽ āϞ⧋āĻ•āχ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āύāĻŋāĻœā§‡āϕ⧇ āύāĻŋāĻŽāĻœā§āϜāĻŋāϤ āĻ•āϰ⧇āϛ⧇ - āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϤāĻžāϰāĻž JSON-āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻŽā§‹āϟāĻžāĻŽā§āϟāĻŋ āϏāĻšāϜ (āĻāĻŦāĻ‚ MTProto āĻĨ⧇āϕ⧇ āĻŦ⧇āĻļ āφāϞāĻžāĻĻāĻž) āĻŦāϟ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ⧇āϰ āωāĻĒāϰ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāĻļāĻ‚āϏāĻž āĻāĻŦāĻ‚ āĻĒāĻŋāφāϰ āϝāĻž āĻŽā§‡āϏ⧇āĻžā§āϜāĻžāϰāϕ⧇ āϘāĻŋāϰ⧇āĨ¤ āĻĒā§āϰāĻžāϝāĻŧ āĻĻ⧇āĻĄāĻŧ āĻŦāĻ›āϰ āφāϗ⧇, āĻāĻļ⧇āϞāύ āĻāύāϜāĻŋāĻ“ āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ-āϤ⧇ āφāĻŽāĻžāϰ āϏāĻšāĻ•āĻ°ā§āĻŽā§€ (āĻĻ⧁āĻ°ā§āĻ­āĻžāĻ—ā§āϝāĻŦāĻļāϤ, āĻ–āϏāĻĄāĻŧāĻžāϰ āϏāĻžāĻĨ⧇ āĻšāĻžāĻŦā§āϰ⧇āϤ⧇ āϤāĻžāϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ) āĻĒāĻžāĻ°ā§āϞ⧇ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āϤāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞāĻŋāĻ–āϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ āĻāĻŦāĻ‚ āĻĒāϰ⧇ āĻāχ āϞāĻžāχāύāϗ⧁āϞāĻŋāϰ āϞ⧇āĻ–āĻ• āϝ⧋āĻ—āĻĻāĻžāύ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύāĨ¤ āϕ⧇āύ āĻĒāĻžāĻ°ā§āϞ, āϕ⧇āω āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰāĻŦ⧇? āĻ•āĻžāϰāĻŖ āĻāχ āϧāϰāύ⧇āϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ, āφāϏāϞ⧇, āĻāϟāĻŋ āĻŦāĻŋāĻ¨ā§āĻĻ⧁ āύāϝāĻŧ, āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻ­āĻžāώāĻž āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āύ⧇āχ āϰ⧇āĻĄāĻŋāĻŽā§‡āĻĄ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ, āĻāĻŦāĻ‚ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϞ⧇āĻ–āĻ• āϏāĻŦ āĻĒāĻĨ āϝ⧇āϤ⧇ āĻšāĻŦ⧇ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇. āϤāĻžāĻ›āĻžāĻĄāĻŧāĻž āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ⧇āϰ āĻŦāĻŋāώāϝāĻŧ, āϤāĻŦ⧇ āϝāĻžāϚāĻžāχ āĻ•āϰ⧁āύāĨ¤ āϏ⧁āϰāĻ•ā§āώāĻžāϰ āϞāĻ•ā§āĻˇā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻŖā§āϝ⧇āϰ āϏāĻžāĻĨ⧇, āφāĻĒāύāĻŋ āϕ⧇āĻŦāϞ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻ•āĻžāϰāϕ⧇āϰ āĻ•āĻžāĻ› āĻĨ⧇āϕ⧇ āϤ⧈āϰāĻŋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϧāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋāϕ⧇ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž (āϤāĻŦ⧇, āĻāϟāĻŋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧ)āĨ¤ āĻāχ āĻŽā§āĻšā§āĻ°ā§āϤ⧇, āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ "āĻ—āĻĄāĻŧ" āĻ¸ā§āϤāϰ⧇ āĻŦ⧇āĻļ āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇ (āφāĻĒāύāĻžāϕ⧇ āϝ⧇ āϕ⧋āύāĻ“ API āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ)āĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āĻĒā§‹āĻ¸ā§āĻŸā§‡āϰ āĻāχ āϏāĻŋāϰāĻŋāĻœā§‡ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋ āĻŦāĻž āĻ—āĻŖāĻŋāϤ āĻĨāĻžāĻ•āĻŦ⧇ āύāĻžāĨ¤ āϤāĻŦ⧇ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŦāĻ‚ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāĻžāϞ āĻ•ā§āϰāĻžāϚ āĻĨāĻžāĻ•āĻŦ⧇ (āϝāĻžāϰāĻž āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āϞāĻŋāĻ–āĻŦ⧇āύ āύāĻž, āϤāĻŦ⧇ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϝ⧇ āϕ⧋āύāĻ“ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝāĻ“ āĻĻāϰāĻ•āĻžāϰ⧀)āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āĻŽā§‚āϞ āϞāĻ•ā§āĻˇā§āϝ āĻ›āĻŋāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€. āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻž āϝāĻžāĻ• āϝ⧇ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻŦāĻ¨ā§āϧ (āφāĻŦāĻžāϰ, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇ āφāĻŽāϰāĻž āĻāχ āĻŦāĻŋāώāϝāĻŧāϟāĻŋāϰ āĻŦāĻŋāώāϝāĻŧāϟāĻŋ āφāϰāĻ“ āĻŦāĻŋāĻļāĻĻ⧇ āĻ•āĻ­āĻžāϰ āĻ•āϰāĻŦ āϝ⧇ āĻāϟāĻŋ āϏāĻ¤ā§āϝāĨ¤ āĻāϰāĻ•āĻŽ āϤāĻžāχ), āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻĒ⧁āϰāĻžāύ⧋ āĻĻāĻŋāύ⧇āϰ āĻŽāϤ⧋, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, RFC-āĻāϰ āĻŽāϤ⧋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϰāϝāĻŧ⧇āϛ⧇ - āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄāϟāĻŋ "āύāĻž āĻĻ⧇āϖ⧇" āĻāĻ•āĻž āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞ⧇āĻ–āĻž āĻ•āĻŋ āϏāĻŽā§āĻ­āĻŦ, āϤāĻž āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞāχ āĻšā§‹āĻ• āύāĻž āϕ⧇āύ (āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ, āĻŽā§‹āĻŦāĻžāχāϞ), āύāĻžāĻ•āĻŋ āĻ…āύāĻžāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ• āĻŸā§‡āϞāĻŋāĻĨāύ?

āϏ⧁āϚāĻŋāĻĒāĻ¤ā§āϰ:

āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ... āĻāϟāĻž āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ, āϤāĻžāχ āύāĻž? āĻāϟāĻž āϏāĻ¤ā§āϝāĻŋ?..

āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧāϟāĻŋāϰ āϜāĻ¨ā§āϝ āύ⧋āĻŸā§‡āϰ āϟ⧁āĻ•āϰ⧋ āĻ—āϤ āĻ—ā§āϰ⧀āĻˇā§āĻŽā§‡ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāĻŸā§‡ āĻāχ āϏāĻŦ āϏāĻŽāϝāĻŧ https://core.telegram.org āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϞ⧇āϝāĻŧāĻžāϰ 23 āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ›āĻŋāϞ, āĻ…āĻ°ā§āĻĨāĻžā§Ž 2014 āϏāĻžāϞ⧇ āϕ⧋āĻĨāĻžāĻ“ āφāϟāϕ⧇ āϗ⧇āϛ⧇ (āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ, āϤāĻ–āύāĻ“ āĻšā§āϝāĻžāύ⧇āϞ āĻ›āĻŋāϞ āύāĻž?) āĻ…āĻŦāĻļā§āϝāχ, āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇, āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ 2014 āϏāĻžāϞ⧇ āϏ⧇āχ āϏāĻŽāϝāĻŧ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āϏāĻš āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āĻ›āĻŋāϞāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāχ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϝāĻŧāĻ“, āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻ›āĻŋāϞ, āĻĒā§āϰāĻĨāĻŽāϤ, āĻ…āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ, āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϤ, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻāϟāĻŋ āύāĻŋāĻœā§‡āχ āĻŦāĻŋāϰ⧋āϧāĻŋāϤāĻž āĻ•āϰ⧇āĻ›āĻŋāϞāĨ¤ āĻŽāĻžāĻ¤ā§āϰ āĻāĻ• āĻŽāĻžāϏ āφāϗ⧇, 2019 āϏāĻžāϞ⧇āϰ āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ⧇, āĻāϟāĻŋ āĻ›āĻŋāϞ āϘāϟāύāĻžāĻ•ā§āϰāĻŽā§‡ āĻāϟāĻŋ āφāĻŦāĻŋāĻˇā§āĻ•ā§ƒāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϝ⧇ āϏāĻžāχāϟāϟāĻŋāϤ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻĄāĻŧ āφāĻĒāĻĄā§‡āϟ āĻ›āĻŋāϞ, āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āĻ¸ā§āϤāϰ 105 āĻāϰ āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ āύ⧋āϟ āϏāĻš āϝ⧇ āĻāĻ–āύ āϏāĻŦāĻ•āĻŋāϛ⧁ āφāĻŦāĻžāϰ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇, āĻ…āύ⧇āĻ• āύāĻŋāĻŦāĻ¨ā§āϧ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻ›āĻŋāϞāĨ¤ āĻ…āϤāĻāĻŦ, āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āύ⧀āĻšā§‡āϰ āϏāĻŽāĻžāϞ⧋āϚāύāĻž āĻĒāĻĄāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻžāϰ āĻŽāύ⧇ āϰāĻžāĻ–āĻž āωāϚāĻŋāϤ āϝ⧇ āĻāχ āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻ•āĻŋāϛ⧁ āφāϰ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āύāϝāĻŧ, āϤāĻŦ⧇ āĻ•āĻŋāϛ⧁ āĻāĻ–āύāĻ“ āϝāĻĨ⧇āĻˇā§āϟāĨ¤ āϏāĻ°ā§āĻŦā§‹āĻĒāϰāĻŋ, āφāϧ⧁āύāĻŋāĻ• āĻŦāĻŋāĻļā§āĻŦ⧇ 5 āĻŦāĻ›āϰ āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ āύāϝāĻŧ, āϤāĻŦ⧇ āϖ⧁āĻŦ āĻ…āύ⧇āĻ• āϏ⧇āχ āϏāĻŽāϝāĻŧ āĻĨ⧇āϕ⧇ (āĻŦāĻŋāĻļ⧇āώāϤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĒ⧁āύāϰ⧁āĻœā§āĻœā§€āĻŦāĻŋāϤ āϜāĻŋāĻ“āĻšā§āϝāĻžāϟ āϏāĻžāχāϟāϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻžāϝāĻŧ āύāĻž āύ⧇āύ āϤāĻ–āύ āĻĨ⧇āϕ⧇), āĻ¸ā§āĻ•āĻŋāĻŽā§‡ API āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻ•āĻļ āĻĨ⧇āϕ⧇ āĻĻ⧁āχāĻļ āĻĒāĻžā§āϚāĻžāĻļ⧇āϰ āĻŦ⧇āĻļāĻŋ āĻšāϝāĻŧ⧇ āϗ⧇āϛ⧇!

āĻāĻ•āϜāύ āϤāϰ⧁āĻŖ āϞ⧇āĻ–āĻ• āĻšāĻŋāϏ⧇āĻŦ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ⧇āύ?

āφāĻĒāύāĻŋ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āϞāĻŋāϖ⧁āύ āĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻ•āĻŋāύāĻž āϤāĻž āĻŦāĻŋāĻŦ⧇āĻšā§āϝ āύāϝāĻŧ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϰ⧇āĻĄāĻŋāĻŽā§‡āĻĄ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϗ⧁āϞāĻŋ āĻĒāĻžāχāĻĨāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŸā§‡āϞāĻŋāĻĨāύ āĻŦāĻž āĻĒāĻŋāĻāχāϚāĻĒāĻŋāϰ āϜāĻ¨ā§āϝ āĻŽā§‡āĻĄāϞāĻžāχāύ, āϝ⧇ āϕ⧋āύ⧋ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻĒāύāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āφāĻĒāύāĻžāϰ āφāĻŦ⧇āĻĻāύ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰ⧁āύ - āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻĒāĻžāύ api_id и api_hash (āϝāĻžāϰāĻž VKontakte API āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇ āϤāĻžāϰāĻž āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇) āϝāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻŦ⧇āĨ¤ āĻāχ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āφāχāύāĻŋ āĻ•āĻžāϰāϪ⧇ āĻāϟāĻŋ āĻ•āϰ⧁āύ, āϤāĻŦ⧇ āφāĻŽāϰāĻž āϕ⧇āύ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϞ⧇āĻ–āĻ•āϰāĻž āĻāϟāĻŋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āĻ•āĻĨāĻž āĻŦāϞāĻŦāĨ¤ āφāĻĒāύāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āĻŽāĻžāύ āύāĻŋāϝāĻŧ⧇ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝāĻĻāĻŋāĻ“ āϏ⧇āϗ⧁āϞāĻŋ āϖ⧁āĻŦ āϏ⧀āĻŽāĻŋāϤ - āφāϏāϞ āĻŦāĻŋāώāϝāĻŧāϟāĻŋ āĻšāϞ āĻāĻ–āύ āφāĻĒāύāĻŋ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ• āĻ…ā§āϝāĻžāĻĒ, āϤāĻžāχ āϤāĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧāĻž āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤

āĻāĻ–āύ, āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āĻŦāĻŋāώāϝāĻŧ⧇ āφāĻ—ā§āϰāĻšā§€ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āϝ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāĻ•āϰāϪ⧇āϰ āĻĒāϰ⧇ āφāĻŽāϰāĻž āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ, āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āφāĻĒāĻĄā§‡āϟ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋāϗ⧁āϞāĻŋ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϕ⧇āω āϧāϰ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻĄāĻ•āϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻžāχāϟāϟāĻŋ āϕ⧇āĻŦāϞ āĻĒāϰāĻŋāĻ¤ā§āϝāĻ•ā§āϤ āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āϝāĻžāϰāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĻ›āĻŋāϞ āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϗ⧇āϛ⧇, āĻ•āĻžāϰāĻŖ āĻāϟāĻž āϏāĻšāϜāϤāϰ. āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻž, āϏ⧇āϰāĻ•āĻŽ āĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāϞāĻ•ā§āώāĻŋāϤ āĻšāϝāĻŧāύāĻŋ, āϕ⧋āύ⧋ āϤāĻĨā§āϝ āφāϏ⧇āύāĻŋāĨ¤

āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āϞ⧇āϖ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āφāϏāϞ⧇ āĻāĻ–āύāĻ“ āĻ…āύ⧇āĻ• āĻĻā§‚āϰ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ https://core.telegram.org/ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽā§‡ āĻļ⧁āϰ⧁āϤ⧇ āϏ⧇āϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰ⧇, āφāϏāϞ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ MTProto āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ - āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤ⧁āĻŽāĻŋ āϝāĻĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰ OSI āĻŽāĻĄā§‡āϞ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϞ⧇āφāωāϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāĻŦāϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻĒ⧃āĻˇā§āĻ āĻžāϰ āĻļ⧇āώ⧇, āϤāĻžāϰāĻĒāϰ āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻŦ⧃āĻĨāĻžāĨ¤

āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇, MTProto-āĻāϰ āφāϗ⧇ āĻāĻŦāĻ‚ āĻĒāϰ⧇ āωāĻ­āϝāĻŧāχ, āĻāĻ•āϏāĻžāĻĨ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ¸ā§āϤāϰ⧇ (āϝ⧇āĻŽāύ OS āĻ•āĻžāĻ°ā§āύ⧇āϞ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āĻŦāĻŋāĻĻ⧇āĻļā§€ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰāϰāĻž āĻŦāϞāϛ⧇āύ, āĻ¸ā§āϤāϰ āϞāĻ™ā§āϘāύ), āĻāĻ•āϟāĻŋ āĻŦāĻĄāĻŧ, āĻŦ⧇āĻĻāύāĻžāĻĻāĻžāϝāĻŧāĻ• āĻāĻŦāĻ‚ āĻ­āϝāĻŧāĻžāύāĻ• āĻŦāĻŋāώāϝāĻŧ āφāϏāĻŦ⧇...

āĻŦāĻžāχāύāĻžāϰāĻŋ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ: TL (āϟāĻžāχāĻĒ āĻ˛ā§āϝāĻžāĻ™ā§āϗ⧁āϝāĻŧ⧇āϜ) āĻāĻŦāĻ‚ āĻāϰ āĻ¸ā§āĻ•āĻŋāĻŽ, āĻāĻŦāĻ‚ āϞ⧇āϝāĻŧāĻžāϰ, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ…āύ⧇āĻ• āĻ­āϝāĻŧāĻ™ā§āĻ•āϰ āĻļāĻŦā§āĻĻ

āĻāχ āĻŦāĻŋāώāϝāĻŧāϟāĻŋ, āφāϏāϞ⧇, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āĻŽā§‚āϞāĨ¤ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻ—āĻ­ā§€āϰāĻ­āĻžāĻŦ⧇ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āύ āϤāĻŦ⧇ āĻ…āύ⧇āĻ• āĻ­āϝāĻŧāĻ™ā§āĻ•āϰ āĻļāĻŦā§āĻĻ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, āĻāĻ–āĻžāύ⧇ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ. āĻāχ āĻ•āĻĨāĻžāϟāĻŋ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻŽāĻžāĻĨāĻžāϝāĻŧ āφāϏ⧇ āϤāĻŦ⧇ āĻŦāϞ⧁āύ, JSON āĻ¸ā§āĻ•āĻŋāĻŽāĻž, āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻž. āϞāĻ•ā§āĻˇā§āϝ āĻāĻ•āχ: āĻĒā§āϰ⧇āϰāĻŋāϤ āĻĄā§‡āϟāĻžāϰ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϏ⧇āϟ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āĻ­āĻžāώāĻžāĨ¤ āĻāĻ–āĻžāύ⧇āχ āĻŽāĻŋāϞ āĻļ⧇āώ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻĒ⧇āϜ āĻĨ⧇āϕ⧇ MTProto āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ, āĻ…āĻĨāĻŦāĻž āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āωāĻ¤ā§āϏ āĻ—āĻžāĻ› āĻĨ⧇āϕ⧇, āφāĻŽāϰāĻž āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻ–ā§‹āϞāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŦ, āφāĻŽāϰāĻž āĻāϰāĻ•āĻŽ āĻ•āĻŋāϛ⧁ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ:

int ? = Int;
long ? = Long;
double ? = Double;
string ? = String;

vector#1cb5c415 {t:Type} # [ t ] = Vector t;

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

---functions---

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:bytes = Set_client_DH_params_answer;

ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

invokeAfterMsg#cb9f372d msg_id:long query:!X = X;
invokeAfterMsgs#3dc4b4f0 msg_ids:Vector<long> query:!X = X;

account.updateProfile#78515775 flags:# first_name:flags.0?string last_name:flags.1?string about:flags.2?string = User;
account.sendChangePhoneCode#8e57deb flags:# allow_flashcall:flags.0?true phone_number:string current_number:flags.0?Bool = auth.SentCode;

āϝ⧇ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻāϟāĻŋ āĻĻ⧇āĻ–āϛ⧇āύ āϤāĻŋāύāĻŋ āĻ¸ā§āĻŦāĻœā§āĻžāĻžāϤāĻ­āĻžāĻŦ⧇ āϝāĻž āϞ⧇āĻ–āĻž āφāϛ⧇ āϤāĻžāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ…āĻ‚āĻļ āϚāĻŋāύāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻŦ⧇āύ - āĻ­āĻžāϞ, āĻāϗ⧁āϞāĻŋ āĻĻ⧃āĻļā§āϝāϤ āĻ•āĻžāĻ āĻžāĻŽā§‹ (āϝāĻĻāĻŋāĻ“ āύāĻžāĻŽāϟāĻŋ āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ āĻŦāĻž āĻĄāĻžāύāĻĻāĻŋāϕ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ?), āϤāĻžāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ•ā§āώ⧇āĻ¤ā§āϰ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āϕ⧋āϞāύ⧇āϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āϟāĻžāχāĻĒ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇... āϏāĻŽā§āĻ­āĻŦāϤāĨ¤ āĻāĻ–āĻžāύ⧇ āϕ⧋āĻŖ āĻŦāĻ¨ā§āϧāύ⧀āϤ⧇ āϏāĻŽā§āĻ­āĻŦāϤ C++ āĻāϰ āĻŽāϤ⧋ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϰāϝāĻŧ⧇āϛ⧇ (āφāϏāϞ⧇, āĻŦ⧇āĻļ āύāĻž) āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āϚāĻŋāĻšā§āύ⧇āϰ āĻ…āĻ°ā§āĻĨ āϕ⧀, āĻĒā§āϰāĻļā§āύ āϚāĻŋāĻšā§āύ, āĻŦāĻŋāĻ¸ā§āĻŽāϝāĻŧāĻŦā§‹āϧāĻ• āϚāĻŋāĻšā§āύ, āĻļāϤāĻžāĻ‚āĻļ, āĻšā§āϝāĻžāĻļ āϚāĻŋāĻšā§āύ (āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ āϤāĻžāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻŋāύāĻŋāϏ āĻŦā§‹āĻāĻžāϝāĻŧ), āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻāĻŦāĻ‚ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āύāϝāĻŧ, āĻšā§‡āĻ•ā§āϏāĻžāĻĄā§‡āϏāĻŋāĻŽā§‡āϞ āϏāĻ‚āĻ–ā§āϝāĻž - āĻāĻŦāĻ‚ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦ⧇, āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ āĻ…āϧāĻŋāĻ•āĻžāϰ (āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻž) āĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ? āφāĻĒāύāĻžāϕ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇ (āĻšā§āϝāĻžāρ, āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ JSON āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻ¸ā§āĻ•āĻŋāĻŽāĻžāϰ āϞāĻŋāĻ™ā§āĻ• āϰāϝāĻŧ⧇āϛ⧇ - āϤāĻŦ⧇ āĻāϟāĻŋ āĻāϟāĻŋāϕ⧇ āφāϰāĻ“ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇ āύāĻž).

āĻĒ⧇āϜ āϖ⧁āϞ⧁āύ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄā§‡āϟāĻž āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻāĻŦāĻ‚ āĻŽāĻžāĻļāϰ⧁āĻŽ āĻāĻŦāĻ‚ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ—āĻŖāĻŋāϤ⧇āϰ āϜāĻžāĻĻ⧁āĻ•āϰ⧀ āϜāĻ—āϤ⧇ āĻĄā§āĻŦ āĻĻāĻŋāύ, 4āĻ°ā§āĻĨ āĻŦāĻ›āϰ⧇ āĻŽāĻžāϤāĻžāύ⧇āϰ āĻŽāϤ⧋ āĻ•āĻŋāϛ⧁āĨ¤ āĻŦāĻ°ā§āĻŖāĻŽāĻžāϞāĻž, āĻĒā§āϰāĻ•āĻžāϰ, āĻŽāĻžāύ, āϏāĻ‚āϝ⧋āϜāĻ•, āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āϏāĻ‚āϝ⧋āϜāĻ•, āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻĢāĻ°ā§āĻŽ, āϝ⧌āĻ—āĻŋāĻ• āĻĒā§āϰāĻ•āĻžāϰ, āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ• āϟāĻžāχāĻĒ... āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒ⧃āĻˇā§āĻ āĻž! āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϛ⧇ TL āĻ­āĻžāώāĻž, āϝāĻž, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āϤ⧁āĻšā§āĻ› āĻ…āύ⧁āϰ⧋āϧ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ āωāĻĻāĻžāĻšāϰāĻŖ āϧāĻžāϰāĻŖ āĻ•āϰ⧇, āĻāϟāĻŋ āφāϰāĻ“ āϏāĻžāϧāĻžāϰāĻŖ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŽā§‹āĻŸā§‡āĻ“ āĻāĻ•āϟāĻŋ āωāĻ¤ā§āϤāϰ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āύāĻž, āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāϞ āϝ⧇ āφāĻĒāύāĻžāϕ⧇ āφāϰāĻ“ āφāϟāϟāĻŋ āĻāĻŽāĻŦ⧇āĻĄā§‡āĻĄā§‡āϰ āωāĻĒāϰ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāύ āĻĨ⧇āϕ⧇ āχāĻ‚āϰ⧇āϜāĻŋāϤ⧇ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāĻž āĻ—āĻŖāĻŋāϤ⧇āϰ āĻĒ⧁āύāσāĻ­āĻžāώāĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āϝ⧇āϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻĒ⧃āĻˇā§āĻ āĻžāϗ⧁āϞāĻŋ

āĻĢāĻžāĻ‚āĻļāύāĻžāϞ āĻ˛ā§āϝāĻžāĻ™ā§āϗ⧁āϝāĻŧ⧇āϜ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϟāĻžāχāĻĒ āχāύāĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻĒāĻžāĻ āĻ•āϰāĻž āĻ…āĻŦāĻļā§āϝāχ āĻāχ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦāĻ°ā§āĻŖāύāĻžāϰ āĻ­āĻžāώāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύ, āĻāĻŽāύāĻ•āĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĨ⧇āϕ⧇āĻ“ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻĒāϰāĻŋāϚāĻŋāϤ, āĻāĻŦāĻ‚ āĻŦāϞāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇ āĻāϟāĻŋ āφāϏāϞ⧇ āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇ āĻ–āĻžāϰāĻžāĻĒ āύāϝāĻŧāĨ¤ āĻāχ āĻŦāĻŋāώāϝāĻŧ⧇ āφāĻĒāĻ¤ā§āϤāĻŋāϗ⧁āϞāĻŋ āĻšāϞ:

  • āĻšā§āϝāĻžāρ, ҆ĐĩĐģҌ āĻ­āĻžāϞ āĻļā§‹āύāĻžāĻšā§āϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻšāĻžāϝāĻŧ, āϏ⧇ āĻ…āĻ°ā§āϜāĻŋāϤ āύāĻž
  • āϰāĻžāĻļāĻŋāϝāĻŧāĻžāύ āĻŦāĻŋāĻļā§āĻŦāĻŦāĻŋāĻĻā§āϝāĻžāϞāϝāĻŧāϗ⧁āϞāĻŋāϤ⧇ āĻļāĻŋāĻ•ā§āώāĻž āĻāĻŽāύāĻ•āĻŋ āφāχāϟāĻŋ āĻŦāĻŋāĻļ⧇āώāĻ¤ā§āĻŦ⧇āϰ āĻŽāĻ§ā§āϝ⧇āĻ“ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϝāĻŧ - āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇āχ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āϕ⧋āĻ°ā§āϏ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āύāĻŋ
  • āĻ…āĻŦāĻļ⧇āώ⧇, āφāĻŽāϰāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ, āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āϤāĻž āĻšāϝāĻŧ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āϝ⧇āĻšā§‡āϤ⧁ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŽāύ TL-āĻāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āϏ⧀āĻŽāĻŋāϤ āωāĻĒāϏ⧇āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇

āϝ⧇āĻŽāύ āĻŦāϞāϞ⧇ āϞāĻŋāĻ“āύāĻžāĻ°ā§āĻĄ āĻšā§āϝāĻžāύ⧇āϞ⧇ #perl āĻĢā§āϰāĻŋāύ⧋āĻĄ āφāχāφāϰāϏāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇, āϝāĻŋāύāĻŋ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻŽā§āϝāĻžāĻŸā§āϰāĻŋāĻ•ā§āϏ⧇ āĻāĻ•āϟāĻŋ āϗ⧇āϟ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ (āωāĻĻā§āϧ⧃āϤāĻŋāϟāĻŋāϰ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻŽā§‡āĻŽāϰāĻŋ āĻĨ⧇āϕ⧇ āϭ⧁āϞ):

āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āϕ⧇āω āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ⧇āϰ āĻŽāϤ⧋ āĻĨāĻŋāĻ“āϰāĻŋ āϟāĻžāχāĻĒ āĻ•āϰāĻžāϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āωāĻ¤ā§āϤ⧇āϜāĻŋāϤ āĻšāϝāĻŧ⧇ āĻĒāĻĄāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϖ⧇āϞāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĻ›āĻŋāϞ, āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϟāĻŋ āĻ…āύ⧁āĻļā§€āϞāύ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻŋāϞ āĻ•āĻŋāύāĻž āϤāĻž āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇ āύāĻžāĨ¤

āύāĻŋāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻĻ⧇āϖ⧁āύ, āϝāĻĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻ•āĻŋāϛ⧁ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦ⧇āϝāĻŧāĻžāϰ-āϟāĻžāχāĻĒ (int, long, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ) āĻāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻĒā§āϰāĻļā§āύ āωāĻ¤ā§āĻĨāĻžāĻĒāύ āύāĻž āĻ•āϰ⧇ - āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ - āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāϏ⧁āύ āϏ⧇āϗ⧁āϞāĻŋ āĻĨ⧇āϕ⧇ āĻŦ⧇āϰ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž āϝāĻžāĻ• āϭ⧇āĻ•ā§āϟāϰ. āĻ…āĻ°ā§āĻĨāĻžā§Ž āφāϏāϞ⧇, āĻ…ā§āϝāĻžāϰ⧇, āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋāϕ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻ āĻŋāĻ• āύāĻžāĻŽā§‡ āĻĄāĻžāϕ⧇āύāĨ¤

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϗ⧇

āϝāĻžāϰāĻž āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒāĻĄāĻŧ⧇āύ āύāĻž āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ TL āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ⧇āϰ āĻāĻ•āϟāĻŋ āωāĻĒāϏ⧇āĻŸā§‡āϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻŋāĻŦāϰāĻŖ

constructor = Type;
myVec ids:Vector<long> = Type;

fixed#abcdef34 id:int = Type2;

fixedVec set:Vector<Type2> = FixedVec;

constructorOne#crc32 field1:int = PolymorType;
constructorTwo#2crc32 field_a:long field_b:Type3 field_c:int = PolymorType;
constructorThree#deadcrc bit_flags_of_what_really_present:# optional_field4:bit_flags_of_what_really_present.1?Type = PolymorType;

an_id#12abcd34 id:int = Type3;
a_null#6789cdef = Type3;

āϏāĻ‚āĻœā§āĻžāĻž āϏāĻ°ā§āĻŦāĻĻāĻž āĻļ⧁āϰ⧁ āĻšāϝāĻŧ āĻĄāĻŋāϜāĻžāχāύāĻžāϰ, āϤāĻžāϰāĻĒāϰ āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ (āĻ…āĻ­ā§āϝāĻžāϏ⧇ - āϏāĻŦāϏāĻŽāϝāĻŧ) āĻĒā§āϰāϤ⧀āϕ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ # āĻšāϤ⧇ āĻšāĻŦ⧇ CRC32 āĻāχ āϧāϰāύ⧇āϰ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŦāĻ°ā§āĻŖāύāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻĨ⧇āϕ⧇āĨ¤ āĻāϰāĻĒāϰ⧇ āĻ•ā§āώ⧇āĻ¤ā§āϰāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻŦāϰāĻŖ āφāϏ⧇; āϝāĻĻāĻŋ āϏ⧇āϗ⧁āϞāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āϧāϰāύāϟāĻŋ āĻ–āĻžāϞāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻāϟāĻŋ āϏāĻŦ āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāύ āϚāĻŋāĻšā§āύ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧇āώ āĻšāϝāĻŧ, āĻāχ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϝ⧇ āϧāϰāύ⧇āϰ āύāĻžāĻŽ - āϝ⧇āϟāĻŋ āφāϏāϞ⧇, āϏāĻžāĻŦāϟāĻžāχāĻĒ - āĻāϰ āĻ…āĻ¨ā§āϤāĻ°ā§āĻ—āϤāĨ¤ āϏāĻŽāĻžāύ āϚāĻŋāĻšā§āύ⧇āϰ āĻĄāĻžāύāĻĻāĻŋāϕ⧇āϰ āϞ⧋āĻ•āϟāĻŋ āĻŦāĻšā§āϰ⧂āĻĒā§€ - āϝ⧇, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϧāϰāύ⧇āϰ āĻāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϝāĻĻāĻŋ āϞāĻžāχāύ⧇āϰ āĻĒāϰ⧇ āϏāĻ‚āĻœā§āĻžāĻž āĻšāϝāĻŧ ---functions---, āϤāĻžāĻšāϞ⧇ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻāĻ•āχ āĻĨāĻžāĻ•āĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻ°ā§āĻĨ āĻ­āĻŋāĻ¨ā§āύ āĻšāĻŦ⧇: āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ RPC āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āύāĻžāĻŽ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇, āĻ•ā§āώ⧇āĻ¤ā§āϰāϗ⧁āϞāĻŋ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇ (āĻ­āĻžāϞ, āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻāϟāĻŋ āĻ āĻŋāĻ• āĻāĻ•āχ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĨāĻžāĻ•āĻŦ⧇, āϝ⧇āĻŽāύ āύ⧀āĻšā§‡ āĻŦāĻ°ā§āĻŖāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇ , āĻāϟāĻŋ āϕ⧇āĻŦāϞ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻ…āĻ°ā§āĻĨ āĻšāĻŦ⧇), āĻāĻŦāĻ‚ "āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ• āϟāĻžāχāĻĒ " - āĻĒā§āϰāĻ¤ā§āϝāĻžāĻŦāĻ°ā§āϤāĻŋāϤ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āĻĒā§āϰāĻ•āĻžāϰāĨ¤ āϏāĻ¤ā§āϝ, āĻāϟāĻŋ āĻāĻ–āύāĻ“ āĻŦāĻšā§āϰ⧂āĻĒā§€ āĻĨāĻžāĻ•āĻŦ⧇ - āĻļ⧁āϧ⧁ āĻŦāĻŋāĻ­āĻžāϗ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ ---types---, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāχ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ "āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻž"āĨ¤ āϤāĻžāĻĻ⧇āϰ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āϞ āĻĢāĻžāĻ‚āĻļāύ āϧāϰāύ⧇āϰ āĻ“āĻ­āĻžāϰāϞ⧋āĻĄāĻŋāĻ‚, āϝ⧇āĻŽāύ āĻ•āĻŋāϛ⧁ āĻ•āĻžāϰāϪ⧇, āĻāĻ•āχ āύāĻžāĻŽā§‡āϰ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϏāĻš āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ, āϝ⧇āĻŽāύ C++, TL-āϤ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āύāĻžāĨ¤

āϕ⧇āύ "āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ" āĻāĻŦāĻ‚ "āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ•" āϝāĻĻāĻŋ āĻāϟāĻŋ OOP āύāĻž āĻšāϝāĻŧ? āĻ āĻŋāĻ• āφāϛ⧇, āφāϏāϞ⧇, āĻ•āĻžāϰ⧋ āĻĒāĻ•ā§āώ⧇ OOP āĻĒāĻĻ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻž āϏāĻšāϜ āĻšāĻŦ⧇ - āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤ āĻļā§āϰ⧇āĻŖā§€ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ• āϟāĻžāχāĻĒ, āĻāĻŦāĻ‚ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰāϰāĻž āĻšāϞ āĻāϰ āϏāϰāĻžāϏāϰāĻŋ āĻŦāĻ‚āĻļāϧāϰ āĻļā§āϰ⧇āĻŖā§€, āĻāĻŦāĻ‚ final āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ­āĻžāώāĻžāϰ āĻĒāϰāĻŋāĻ­āĻžāώāĻžāϝāĻŧāĨ¤ āφāϏāϞ⧇, āĻ…āĻŦāĻļā§āϝāχ, āĻāĻ–āĻžāύ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŽāĻŋāϞ OO āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ“āĻ­āĻžāϰāϞ⧋āĻĄā§‡āĻĄ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻĒāĻĻā§āϧāϤāĻŋ āϏāĻšāĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āĻāĻ–āĻžāύ⧇ āĻļ⧁āϧ⧁ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ, āϤāĻžāχ āϕ⧋āύ āĻĒāĻĻā§āϧāϤāĻŋ āύ⧇āχ (āϝāĻĻāĻŋāĻ“ āĻĢāĻžāĻ‚āĻļāύ āĻāĻŦāĻ‚ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻŽāĻžāĻĨāĻžāϝāĻŧ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āϝ⧇ āϏ⧇āϗ⧁āϞāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ, āϤāĻŦ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻŦāĻŋāώāϝāĻŧ) - āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰāϕ⧇ āĻāĻ•āϟāĻŋ āĻŽāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ­āĻžāĻŦāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝāĻž āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻĄāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āϟāĻžāχāĻĒ āĻ•āϰ⧁āύāĨ¤

āĻāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻšāϝāĻŧ? deserializer, āϝāĻž āϏāĻ°ā§āĻŦāĻĻāĻž 4 āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧ⧇, āĻŽāĻžāύ āĻĻ⧇āϖ⧇ 0xcrc32 - āĻāĻŦāĻ‚ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āĻŋ āĻšāĻŦ⧇ field1 āϟāĻžāχāĻĒ āϏāĻš int, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ āĻŋāĻ• 4 āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧ⧇, āĻāϰ āωāĻĒāϰ āϟāĻžāχāĻĒ āϏāĻš āĻ“āĻ­āĻžāϰāϞāĻžāχāĻ‚ āĻĢāĻŋāĻ˛ā§āĻĄ PolymorType āĻĒāĻĄāĻŧāĻž āĻĻ⧇āϖ⧇ 0x2crc32 āĻāĻŦāĻ‚ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āφāϰāĻ“ āĻĻ⧁āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āϰāϝāĻŧ⧇āϛ⧇, āĻĒā§āϰāĻĨāĻŽ long, āϝāĻžāϰ āĻŽāĻžāύ⧇ āφāĻŽāϰāĻž 8 āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧāĻŋāĨ¤ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ āφāĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āϜāϟāĻŋāϞ āϧāϰāύ⧇āϰ, āϝāĻž āĻāĻ•āχ āĻ­āĻžāĻŦ⧇ deserialized āĻšāϝāĻŧ. āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻŦāϰ⧂āĻĒ, Type3 āϝāĻĨāĻžāĻ•ā§āϰāĻŽā§‡ āĻĻ⧁āϟāĻŋ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ āϏāĻžāĻ°ā§āĻ•āĻŋāĻŸā§‡ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻžāϰāĻĒāϰ āϤāĻžāĻĻ⧇āϰ āĻ…āĻŦāĻļā§āϝāχ āĻĻ⧇āĻ–āĻž āĻšāĻŦ⧇ 0x12abcd34, āϤāĻžāϰāĻĒāϰ⧇ āφāĻĒāύāĻžāϕ⧇ āφāϰāĻ“ 4 āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇ int, āĻŦāĻž 0x6789cdef, āϤāĻžāϰāĻĒāϰ āĻ•āĻŋāϛ⧁āχ āĻšāĻŦ⧇ āύāĻž. āĻ…āĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ - āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ āύāĻŋāĻ•ā§āώ⧇āĻĒ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻāϰ āĻĒāϰ⧇ āφāĻŽāϰāĻž 4 āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧāϤ⧇ āĻĢāĻŋāϰ⧇ āϝāĻžāχ int āĻ•ā§āώ⧇āĻ¤ā§āϰ field_c в constructorTwo āĻāĻŦāĻ‚ āĻāϰ āϏāĻžāĻĨ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻĄāĻŧāĻž āĻļ⧇āώ āĻ•āϰāĻŋ PolymorType.

āĻ…āĻŦāĻļ⧇āώ⧇ āϧāϰāĻž āĻĒāĻĄāĻŧāϞ⧇ 0xdeadcrc āĻĨ⧇āϕ⧇ constructorThree, āϤāĻžāϰāĻĒāϰ āϏāĻŦāĻ•āĻŋāϛ⧁ āφāϰāĻ“ āϜāϟāĻŋāϞ āĻšāϝāĻŧ⧇ āĻ“āϠ⧇āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āĻŽāĻžāĻ  bit_flags_of_what_really_present āϟāĻžāχāĻĒ āϏāĻš # - āφāϏāϞ⧇, āĻāϟāĻŋ āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻĒāύāĻžāĻŽ nat, āĻŽāĻžāύ⧇ "āĻĒā§āϰāĻžāĻ•ā§ƒāϤāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻž"āĨ¤ āϝ⧇, āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇, āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāĻŦāĻŋāĻšā§€āύ int āĻšāϞ, āωāĻĒāĻžāϝāĻŧ āĻĻā§āĻŦāĻžāϰāĻž, āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϝāĻ–āύ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāĻŦāĻŋāĻšā§€āύ āϏāĻ‚āĻ–ā§āϝāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦ āϏāĻžāĻ°ā§āĻ•āĻŋāĻŸā§‡ āϘāĻŸā§‡āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻļā§āύāĻŦā§‹āϧāĻ• āϚāĻŋāĻšā§āύ āϏāĻš āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ, āϝāĻžāϰ āĻ…āĻ°ā§āĻĨ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰāϟāĻŋ - āĻāϟāĻŋ āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āϤāĻžāϰ⧇āϰ āωāĻĒāϰ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĨāĻžāĻ•āĻŦ⧇ āϝāĻĻāĻŋ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻŦāĻŋāϟāϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇ (āĻĒā§āϰāĻžāϝāĻŧ āĻāĻ•āϟāĻŋ āϟāĻžāĻ°ā§āύāĻžāϰāĻŋ āĻ…āĻĒāĻžāϰ⧇āϟāϰ⧇āϰ āĻŽāϤ⧋)āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āϧāϰ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ• āϝ⧇ āĻāχ āĻŦāĻŋāϟāϟāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϝāĻžāϰ āĻŽāĻžāύ⧇ āφāϰāĻ“ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇ Type, āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇ 2āϟāĻŋ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ), āĻ…āĻ¨ā§āϝāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āϰāϝāĻŧ⧇āϛ⧇ ids āϟāĻžāχāĻĒ āϏāĻš ids:Vector<long>.

āφāĻĒāύāĻŋ āĻ­āĻžāĻŦāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻāĻŦāĻ‚ āĻœā§‡āύ⧇āϰāĻŋāĻ• āωāĻ­āϝāĻŧāχ āĻĒ⧇āĻļāĻžāĻĻāĻžāϰ āĻŦāĻž āϜāĻžāĻ­āĻžāϤ⧇ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻž. āĻĒā§āϰāĻžāϝāĻŧāĨ¤ āĻāχ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϏāĻžāĻ°ā§āĻ•āĻŋāĻŸā§‡ āϕ⧋āĻŖ āĻŦāĻ¨ā§āϧāύ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ āĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϰ⧀āĻŽā§‡, āĻāϗ⧁āϞāĻŋ āϭ⧇āĻ•ā§āϟāϰ āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ 4 CRC32 āĻŦāĻžāχāϟ āĻšāĻŦ⧇, āϏāĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āχ, āϤāĻžāϰāĻĒāϰ 4 āĻŦāĻžāχāϟ - āĻ…ā§āϝāĻžāϰ⧇āϰ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋāϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āĻāχ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋ āύāĻŋāĻœā§‡āχāĨ¤

āĻāϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝ⧇ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āϏāĻ°ā§āĻŦāĻĻāĻž 4 āĻŦāĻžāχāĻŸā§‡āϰ āĻļāĻŦā§āĻĻ⧇ āϘāĻŸā§‡, āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāĻ•āĻžāϰ āĻāϟāĻŋāϰ āϗ⧁āĻŖāĻŋāϤāĻ• - āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻĒā§āϰāĻ•āĻžāϰāϗ⧁āϞāĻŋāĻ“ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ bytes и string āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻāĻŦāĻ‚ 4 āĻĻā§āĻŦāĻžāϰāĻž āĻāχ āĻĒā§āϰāĻžāĻ¨ā§āϤāĻŋāĻ•āĻ•āϰāϪ⧇āϰ āϏāĻžāĻĨ⧇ - āĻ­āĻžāϞ, āĻāϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻāĻŦāĻ‚ āĻāĻŽāύāĻ•āĻŋ āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇? āϝāĻĻāĻŋāĻ“ TL āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻŦāϞ⧇ āĻĻāĻžāĻŦāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āϜāĻžāĻšāĻžāĻ¨ā§āύāĻžāĻŽā§‡, āĻĒā§āϰāĻžāϝāĻŧ āĻ•āĻŋāϛ⧁āϰ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āϏāĻš, āĻāĻŽāύāĻ•āĻŋ āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ āĻŽāĻžāύ āĻāĻŦāĻ‚ āĻāĻ•āĻ•-āĻ…āĻ•ā§āώāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ 4 āĻŦāĻžāχāĻŸā§‡, JSON āĻ•āĻŋ āĻāĻ–āύāĻ“ āĻ…āύ⧇āĻ• āĻŽā§‹āϟāĻž āĻšāĻŦ⧇? āĻĻ⧇āϖ⧁āύ, āĻāĻŽāύāĻ•āĻŋ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰāϗ⧁āϞāĻŋāĻ“ āĻŦāĻŋāϟ āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻĻā§āĻŦāĻžāϰāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϏāĻŦāĻ•āĻŋāϛ⧁āχ āĻŦ⧇āĻļ āĻ­āĻžāϞ, āĻāĻŽāύāĻ•āĻŋ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇āϰ āϜāĻ¨ā§āϝāĻ“ āĻāĻ•ā§āϏāĻŸā§‡āύāϏāĻŋāĻŦāϞ, āϤāĻžāĻšāϞ⧇ āϕ⧇āύ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇ āύāϤ⧁āύ āϐāĻšā§āĻ›āĻŋāĻ• āĻ•ā§āώ⧇āĻ¤ā§āϰ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŦ⧇āύ āύāĻž?...

āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻž, āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āφāĻŽāĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻŋāĻŦāϰāĻŖ āύāĻž āĻĒāĻĄāĻŧ⧇āύ, āϤāĻŦ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒāĻĄāĻŧ⧇āύ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇āύāĨ¤ āĻĒā§āϰāĻĨāĻŽāϤ, āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ CRC32 āĻ¸ā§āĻ•āĻŋāĻŽā§‡āϰ āĻĒāĻžāĻ ā§āϝ āĻŦāĻŋāĻŦāϰāϪ⧇āϰ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āϞāĻžāχāύ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ (āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻšā§‹āϝāĻŧāĻžāχāϟāĻ¸ā§āĻĒ⧇āϏ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύ, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ) - āϤāĻžāχ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ•ā§āώ⧇āĻ¤ā§āϰ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ, āϟāĻžāχāĻĒ āĻŦāĻŋāĻŦāϰāĻŖ āϞāĻžāχāύāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϤāĻžāχ āĻāϟāĻŋāϰ CRC32 āĻāĻŦāĻ‚ , āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ•ā§āϰāĻŽāĻŋāĻ•āĻ•āϰāĻŖāĨ¤ āĻāĻŦāĻ‚ āĻĒ⧁āϰāĻžāύ⧋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ•āĻŋ āĻ•āϰāĻŦ⧇ āϝāĻĻāĻŋ āϏ⧇ āύāϤ⧁āύ āĻĒāϤāĻžāĻ•āĻž āϏ⧇āϟ āϏāĻš āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĒāĻžāϝāĻŧ, āĻāĻŦāĻ‚ āϏ⧇ āϜāĻžāύ⧇ āύāĻž āϝ⧇ āϏ⧇āϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇? ..

āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϤ, āφāϏ⧁āύ āĻŽāύ⧇ āĻ•āϰāĻŋ CRC32, āϝāĻž āĻāĻ–āĻžāύ⧇ āĻŽā§‚āϞāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻšā§āϝāĻžāĻļ āĻĢāĻžāĻ‚āĻļāύ āĻ•āĻŋ āϧāϰāύ⧇āϰ (āĻĄāĻŋ) āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āϤāĻž āĻ…āύāĻ¨ā§āϝāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āϏāĻ‚āϘāĻ°ā§āώ⧇āϰ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāĻšā§āĻ›āĻŋ - āĻāĻŦāĻ‚ āύāĻž, āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž 232 āϟāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āύāϝāĻŧ, āϤāĻŦ⧇ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋāĨ¤ āϕ⧇ āĻŽāύ⧇ āϰ⧇āϖ⧇āϛ⧇ āϝ⧇ CRC32 āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻšā§āϝāĻžāύ⧇āϞ⧇ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāύāĻžāĻ•ā§āϤ (āĻāĻŦāĻ‚ āϏāĻ‚āĻļā§‹āϧāύ) āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāĻŦāĻ‚ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āĻ•ā§āώāϤāĻŋāϰ āϜāĻ¨ā§āϝ āĻāχ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰ⧇? āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāϟāĻŋ āĻŦāĻžāχāϟāϗ⧁āϞāĻŋ āĻĒ⧁āύāĻ°ā§āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇ āύāĻž: āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻ⧁āϟāĻŋ āϞāĻžāχāύ āĻĨ⧇āϕ⧇ CRC32 āĻ—āĻŖāύāĻž āĻ•āϰ⧇āύ, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϟāĻŋāϤ⧇ āφāĻĒāύāĻŋ āĻĒā§āϰāĻĨāĻŽ 4 āĻŦāĻžāχāϟ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ 4 āĻŦāĻžāχāĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻ…āĻĻāϞāĻŦāĻĻāϞ āĻ•āϰ⧇āύ - āĻāϟāĻŋ āĻāĻ•āχ āĻšāĻŦ⧇āĨ¤ āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āχāύāĻĒ⧁āϟ āĻ˛ā§āϝāĻžāϟāĻŋāύ āĻŦāĻ°ā§āĻŖāĻŽāĻžāϞāĻž (āĻāĻŦāĻ‚ āϏāĻžāĻŽāĻžāĻ¨ā§āϝ āĻŦāĻŋāϰāĻžāĻŽ āϚāĻŋāĻšā§āύ) āĻĨ⧇āϕ⧇ āĻŸā§‡āĻ•ā§āϏāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻāχ āύāĻžāĻŽāϗ⧁āϞāĻŋ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āĻāϞ⧋āĻŽā§‡āϞ⧋ āύāϝāĻŧ, āϤāĻ–āύ āĻāχ āϧāϰāύ⧇āϰ āĻĒ⧁āύāĻ°ā§āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ…āύ⧇āĻ• āĻŦ⧇āĻĄāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āĻŦāĻžāχ āĻĻā§āϝāĻž āĻ“āϝāĻŧ⧇, āϕ⧇ āĻšā§‡āĻ• āĻ•āϰ⧇āϛ⧇ āϏ⧇āĻ–āĻžāύ⧇ āĻ•āĻŋ āĻ›āĻŋāϞ? āϏāĻ¤ā§āϝāĻŋāχ CRC32? āĻĒā§āϰāĻžāϰāĻŽā§āĻ­āĻŋāĻ• āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋāϤ⧇ (āĻāĻŽāύāĻ•āĻŋ āĻ“āϝāĻŧāĻžāĻ˛ā§āϟāĻŽā§āϝāĻžāύ⧇āϰ āφāϗ⧇āĻ“) āĻāĻ•āϟāĻŋ āĻšā§āϝāĻžāĻļ āĻĢāĻžāĻ‚āĻļāύ āĻ›āĻŋāϞ āϝāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻ•ā§āώāϰāϕ⧇ 239 āϏāĻ‚āĻ–ā§āϝāĻž āĻĻāĻŋāϝāĻŧ⧇ āϗ⧁āĻŖ āĻ•āϰ⧇, āϤāĻžāχ āĻāχ āϞ⧋āϕ⧇āĻĻ⧇āϰ āĻĒā§āϰāĻŋāϝāĻŧ, āĻšāĻž āĻšāĻž!

āĻ…āĻŦāĻļ⧇āώ⧇, āĻ āĻŋāĻ• āφāϛ⧇, āφāĻŽāϰāĻž āĻŦ⧁āĻāϤ⧇ āĻĒ⧇āϰ⧇āĻ›āĻŋ āϝ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āϧāϰāύ āϏāĻš āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻžāϰāĻž Vector<int> и Vector<PolymorType> āφāϞāĻžāĻĻāĻž CRC32 āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āĻ…āύāϞāĻžāχāύ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋ? āĻāĻŦāĻ‚ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇, āĻāχ āϧāϰāύ⧇āϰ āĻ…āĻ‚āĻļ āĻšāϝāĻŧ⧇ āĻ“āϠ⧇? āϧāϰāĻž āϝāĻžāĻ• āφāĻŽāϰāĻž āĻĻāĻļ āĻšāĻžāϜāĻžāϰ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇ āĻĒāĻžāϏ āĻ•āϰāĻŋ Vector<int> āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻāĻŦāĻ‚ āφāϰāĻ“ 40000 āĻŦāĻžāχāϟāĨ¤ āĻāχ āĻšāϞ⧇ āĻ•āĻŋ āĻšāĻŦ⧇ Vector<Type2>, āϝāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ int āĻāĻŦāĻ‚ āĻāϟāĻŋ āϟāĻžāχāĻĒ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āĻž - āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋ 10000xabcdef0 34 āĻŦāĻžāϰ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ 4 āĻŦāĻžāχāϟ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇? int, āĻ…āĻĨāĻŦāĻž āĻ­āĻžāώāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻ¸ā§āĻŦāĻžāϧ⧀āύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ fixedVec āĻāĻŦāĻ‚ 80000 āĻŦāĻžāχāĻŸā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, āφāĻŦāĻžāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ 40000 āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ?

āĻāϟāĻŋ āĻŽā§‹āĻŸā§‡āĻ“ āĻāĻ•āϟāĻŋ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻĒā§āϰāĻļā§āύ āύāϝāĻŧ - āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰ⧁āύ āϝ⧇ āφāĻĒāύāĻŋ āĻ—ā§āϰ⧁āĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒ⧇āϝāĻŧ⧇āϛ⧇āύ, āϝāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇āϰ āĻāĻ•āϟāĻŋ āφāχāĻĄāĻŋ, āĻĒā§āϰāĻĨāĻŽ āύāĻžāĻŽ, āĻļ⧇āώ āύāĻžāĻŽ āϰāϝāĻŧ⧇āϛ⧇ - āĻāĻ•āϟāĻŋ āĻŽā§‹āĻŦāĻžāχāϞ āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻĄā§‡āϟāĻžāϰ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāύ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤

āϤāĻžāχâ€Ļ

āϭ⧇āĻ•ā§āϟāϰ, āϝāĻž āĻ•āĻ–āύāχ āĻŽā§āĻ•ā§āϤāĻŋ āĻĒāĻžāϝāĻŧāύāĻŋ

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ•āĻŽā§āĻŦāĻŋāύ⧇āϟāϰ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āĻŦāĻ°ā§āĻŖāύāĻžāϰ āĻĒ⧃āĻˇā§āĻ āĻžāϗ⧁āϞāĻŋ āϘ⧁āϰ⧇ āĻĻ⧇āĻ–āĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āύ āϤāĻŦ⧇ āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύ āϝ⧇ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ (āĻāĻŦāĻ‚ āĻāĻŽāύāĻ•āĻŋ āĻāĻ•āϟāĻŋ āĻŽā§āϝāĻžāĻŸā§āϰāĻŋāĻ•ā§āϏ) āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻļā§€āĻŸā§‡āϰ āϟāĻŋāĻĒāϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāωāϟāĻĒ⧁āϟ āĻšāĻ“āϝāĻŧāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϤāĻžāϰāĻž āϭ⧁āϞ⧇ āϝāĻžāϝāĻŧ, āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āϧāĻžāĻĒāϟāĻŋ āĻŦāĻžāĻĻ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻœā§āĻžāĻž āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ, āϝāĻž āĻāĻ–āύāĻ“ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦāĻžāρāϧāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ āĻ•āĻŋ āĻŦā§āϝāĻžāĻĒāĻžāϰ? āĻ­āĻžāώāĻžāϝāĻŧ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀, āĻ•āĻžāĻ āĻžāĻŽā§‹āϟāĻŋāϕ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻŦ⧇āĻļ āϏāĻžāϧāĻžāϰāĻŖ - āĻāϰ āĻ…āϞāϏ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āϏāĻš āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āύāĻŋāĻœā§‡āχ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻ•āϰāĻŦ⧇āĨ¤ āĻ­āĻžāώāĻžāϝāĻŧ āĻĄā§‡āϟāĻž āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āϝāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ āϤāĻž āĻš'āϞ āĻĻāĻ•ā§āώāϤāĻž: āĻāϟāĻŋ āϕ⧇āĻŦāϞ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻžāχ āϝāĻĨ⧇āĻˇā§āϟ āϤāĻžāϞāĻŋāĻ•āĻž, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻĻ⧁āϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ⧇āϰ āĻ—āĻ āύ - āĻĒā§āϰāĻĨāĻŽāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āωāĻĒāĻžāĻĻāĻžāύ, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϟāĻŋ āĻāĻ•āχ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦāĻž āϞ⧇āĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āĻ¸ā§āĻĨāĻžāύ (āĻĒā§āϝāĻžāĻ• (cons) āϞāĻŋāĻ¸ā§āĻĒ⧇)āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāχ āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύāϟāĻŋ āϤāĻžāϰ āĻĒā§āϰāĻ•āĻžāϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāϤ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ 4 āĻŦāĻžāχāϟ (TL-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ CRC32) āĻŦā§āϝāϝāĻŧ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇āĻ“ āϏāĻšāĻœā§‡āχ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āϝāĻžāϝāĻŧ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āφāĻ•āĻžāϰ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻ—āĻžāĻŽ āĻ…āϜāĻžāύāĻž āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻŽāϰāĻž āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϝāĻžāχāĨ¤

āĻ…āϤāĻāĻŦ, āϝ⧇āĻšā§‡āϤ⧁ TL āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ āφāωāϟāĻĒ⧁āϟ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ āύāĻž, āϤāĻžāχ āĻāϟāĻŋāϕ⧇ āĻĒāĻžāĻļ⧇ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻŦāϞ⧇:

āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻ•āχ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ "āϭ⧇āĻ•ā§āϟāϰ" āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ (const 0x1cb5c415 = crc32("āϭ⧇āĻ•ā§āϟāϰ t:Type # [ t ] = Vector t") āϝāĻž t āϟāĻžāχāĻĒ⧇āϰ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽāĻžāύ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āύāĻžāĨ¤

āϐāĻšā§āĻ›āĻŋāĻ• āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ t-āĻāϰ āĻŽāĻžāύāϟāĻŋ āĻ•ā§āϰāĻŽāĻŋāĻ•āĻ•āϰāϪ⧇āϰ āϏāĻžāĻĨ⧇ āϜāĻĄāĻŧāĻŋāϤ āύāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āϧāϰāύ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ (āϏāĻ°ā§āĻŦāĻĻāĻž āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āφāϗ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ)āĨ¤

āφāĻĒāύāĻŋ āϏāĻŦ: vector {t:Type} # [ t ] = Vector t - āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧋āĻĨāĻžāĻ“ āύāĻž āĻāχ āϏāĻ‚āĻœā§āĻžāĻž āύāĻŋāĻœā§‡āχ āĻŦāϞ⧇ āύāĻž āϝ⧇ āĻĒā§āϰāĻĨāĻŽ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ āĻšāϤ⧇ āĻšāĻŦ⧇! āĻāĻŦāĻ‚ āĻāϟāĻŋ āϕ⧋āĻĨāĻžāĻ“ āĻĨ⧇āϕ⧇ āφāϏ⧇ āύāĻžāĨ¤ āĻāϟāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āϝāĻž āĻŽāύ⧇ āϰāĻžāĻ–āĻž āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āĻšāĻžāϤ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻĻāϰāĻ•āĻžāϰāĨ¤ āĻ…āĻ¨ā§āϝāĻ¤ā§āϰ, āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻāĻŽāύāĻ•āĻŋ āϏāϤāϤāĻžāϰ āϏāĻžāĻĨ⧇ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧇ āϝ⧇ āĻĒā§āϰāĻ•āĻžāϰāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āύāϝāĻŧ:

āϭ⧇āĻ•ā§āϟāϰ āϟāĻŋ āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ• āϏāĻŋāωāĻĄā§‹āϟāĻžāχāĻĒ āĻšāϞ āĻāĻ•āϟāĻŋ "āϟāĻžāχāĻĒ" āϝāĻžāϰ āĻŽāĻžāύ āĻšāϞ āĻŦāĻžāĻ•ā§āϏāϝ⧁āĻ•ā§āϤ āĻŦāĻž āĻŦ⧇āϝāĻŧāĻžāϰ āϝ⧇āϕ⧋āύ āϧāϰāύ⧇āϰ āϟāĻŋ āĻŽāĻžāύ⧇āϰ āĻ•ā§āϰāĻŽāĨ¤

... āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϤ⧇ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇ āύāĻžāĨ¤ āφāĻĒāύāĻŋ āϝāĻ–āύ āĻ—āĻŖāĻŋāϤ⧇āϰ āϟāĻžāύāĻžāϟāĻžāύāĻŋāϤ⧇ āĻ•ā§āϞāĻžāĻ¨ā§āϤ āĻšāϝāĻŧ⧇ āĻĒāĻĄāĻŧ⧇āύ (āϏāĻŽā§āĻ­āĻŦāϤ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦāĻŋāĻĻā§āϝāĻžāϞāϝāĻŧ⧇āϰ āϕ⧋āĻ°ā§āϏ āĻĨ⧇āϕ⧇āĻ“ āĻĒāϰāĻŋāϚāĻŋāϤ), āϤāĻ–āύ āĻšāĻžāϞ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύ⧇āύ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻĻ⧇āϖ⧁āύ, āϤāĻ–āύ āφāĻĒāύāĻžāϰ āĻŽāĻžāĻĨāĻžāϝāĻŧ āĻ›āĻžāĻĒ āĻĒāĻĄāĻŧ⧇ āϝāĻžāϝāĻŧ āϝ⧇ āĻāϟāĻŋ āϗ⧁āϰ⧁āϤāϰ āĻŽā§‚āϞ⧇ āĻ—āĻŖāĻŋāϤ, āĻāϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āϕ⧁āϞ āĻĒāĻŋāĻĒāϞ (āĻĻ⧁āχ āĻ—āĻŖāĻŋāϤāĻŦāĻŋāĻĻ - ACM āĻŦāĻŋāϜāϝāĻŧā§€) āĻĻā§āĻŦāĻžāϰāĻž āωāĻĻā§āĻ­āĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āϕ⧇āω āύāϝāĻŧāĨ¤ āϞāĻ•ā§āĻˇā§āϝ - āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ - āĻ…āĻ°ā§āϜāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇.

āωāĻĒāĻžāϝāĻŧ āĻĻā§āĻŦāĻžāϰāĻž, āϏāĻ‚āĻ–ā§āϝāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇. āφāĻŽāĻžāĻĻ⧇āϰ āφāĻĒāύāĻžāϕ⧇ āĻŽāύ⧇ āĻ•āϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ• # āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻļāĻŦā§āĻĻ nat, āĻĒā§āϰāĻžāĻ•ā§ƒāϤāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻž:

āϟāĻžāχāĻĒ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āφāϛ⧇ (āϟāĻžāχāĻĒ-āĻāĻ•ā§āϏāĻĒā§āϰ) āĻāĻŦāĻ‚ āϏāĻ‚āĻ–ā§āϝāĻžāϏ⧂āϚāĻ• āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ (nat-āĻāĻ•ā§āϏāĻĒā§āϰ) āϝāĻžāχāĻšā§‹āĻ•, āϤāĻžāϰāĻž āĻāĻ•āχ āĻ­āĻžāĻŦ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

type-expr ::= expr
nat-expr ::= expr

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦā§āϝāĻžāĻ•āϰāϪ⧇ āϤāĻžāϰāĻž āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝ⧇āĻŽāύ āĻāχ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϟāĻŋ āφāĻŦāĻžāϰ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻšā§āĻ›āĻž, āĻšā§āϝāĻžāρ, āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āϧāϰāύ (vector<int>, vector<User>) āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āφāϛ⧇ (#1cb5c415), i.e. āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϜāĻžāύ⧇āύ āϝ⧇ āĻ•āϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāĻž āĻšāϝāĻŧ

users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;

āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ āφāϰ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϛ⧇āύ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āϜāĻ¨ā§āϝāĨ¤ āφāϰ⧋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧇, āĻ…āĻŦāĻļā§āϝāχ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧁āύ - āĻŦāĻžāĻ¸ā§āϤāĻŦ āϕ⧋āĻĄā§‡, āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ, āϝāĻĻāĻŋ āĻŦ⧇āϝāĻŧāĻžāϰ āϟāĻžāχāĻĒ āύāĻž āĻšāϝāĻŧ, āĻāĻ•āϟāĻŋ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻĨāĻžāĻ•āĻŦ⧇ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ - āϤāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ⧇ āĻ āĻŋāĻ• āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϝ⧇ āϧāϰāύ⧇āϰ? āϝāĻĻāĻŋ āĻāϟāĻŋ āĻ•āĻŋāϛ⧁ āϧāϰāϪ⧇āϰ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āĻ›āĻŋāϞ, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϰ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āωāĻĒāĻžāĻĻāĻžāύ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāϪ⧇āϰ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇?

āĻāχ āĻŽā§āĻšā§āĻ°ā§āϤ⧇ āφāĻĒāύāĻŋ āĻ­āĻžāĻŦāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āύ - āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϟāĻŋāĻāϞ āĻ•āĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ? āĻšāϝāĻŧāϤ⧋ āĻ•āĻžāĻ°ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻŽāĻžāύāĻŦ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĻšāĻŦ⧇, āĻāĻ•āχ āĻĒā§āϰ⧋āĻŸā§‹āĻŦāĻžāĻĢ āϝāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻ›āĻŋāϞ? āĻāϟāĻžāχ āĻ›āĻŋāϞ āϤāĻ¤ā§āĻ¤ā§āĻŦ, āϚāϞ⧁āύ āĻ…āύ⧁āĻļā§€āϞāύ āĻĻ⧇āĻ–āĻŋāĨ¤

āϕ⧋āĻĄā§‡ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ TL āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ

āĻĄā§āϰāϭ⧇āϰ āĻļ⧇āϝāĻŧāĻžāϰ āĻŦāĻŋāĻ•ā§āϰāĻŋāϰ āĻŦāĻŋāĻ–ā§āϝāĻžāϤ āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āφāϗ⧇āĻ“ āϟāĻŋāĻāϞ āĻ­āĻŋāĻ•āĻ¨ā§āϟāĻžāĻ•ā§āĻŸā§‡āϰ āĻ—āĻ­ā§€āϰāϤāĻžāϝāĻŧ āϜāĻ¨ā§āĻŽāĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ (āύāĻŋāĻļā§āϚāϝāĻŧ), āĻāĻŽāύāĻ•āĻŋ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻļ⧁āϰ⧁ āĻšāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇āχāĨ¤ āĻāĻŦāĻ‚ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ⧇ āĻĒā§āϰāĻĨāĻŽ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āφāĻĒāύāĻŋ āĻ…āύ⧇āĻ• āĻŽāϜāĻžāϰ āĻ•ā§āϰāĻžāϚ āϖ⧁āρāĻœā§‡ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāĻŦāĻ‚ āĻ­āĻžāώāĻžāϟāĻŋ āĻāĻ–āύ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āϤ⧁āϞāύāĻžāϝāĻŧ āϏ⧇āĻ–āĻžāύ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ¸ā§āĻ•āĻŋāĻŽāϟāĻŋāϤ⧇ āĻšā§āϝāĻžāĻļ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž (āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āϏāĻŋāωāĻĄā§‹āϟāĻžāχāĻĒ (āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āĻŽāϤ⧋) āĻŦāĻŋāĻšā§āϝ⧁āϤ āφāϚāϰāĻŖ āϏāĻš)āĨ¤ āĻŦāĻž

Templates are not used now. Instead, the same universal constructors (for example, vector {t:Type} [t] = Vector t) are used w

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āϝāĻžāĻ•, āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϤāĻžāϰ āĻ–āĻžāϤāĻŋāϰ⧇, āĻŸā§āϰ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āϤāĻžāχ āĻŦāϞāϤ⧇ āϗ⧇āϞ⧇, āϚāĻŋāĻ¨ā§āϤāĻžāϰ āĻĻ⧈āĻ¤ā§āϝ⧇āϰ āĻŦāĻŋāĻŦāĻ°ā§āϤāύāĨ¤

#define ZHUKOV_BYTES_HACK

#ifdef ZHUKOV_BYTES_HACK

/* dirty hack for Zhukov request */

āĻ…āĻĨāĻŦāĻž āĻāχ āϏ⧁āĻ¨ā§āĻĻāϰ āĻāĻ•āϟāĻŋ:

    static const char *reserved_words_polymorhic[] = {

      "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", NULL

      };

āĻāχ āĻ–āĻŖā§āĻĄāϟāĻŋ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇:

intHash {alpha:Type} vector<coupleInt<alpha>> = IntHash<alpha>;

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻšā§āϝāĻžāĻļāĻŽā§āϝāĻžāĻĒ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϟāĻžāχāĻĒ⧇āϰ āϏāĻ‚āĻœā§āĻžāĻž int - āϟāĻžāχāĻĒ āĻœā§‹āĻĄāĻŧāĻžāϰ āϭ⧇āĻ•ā§āϟāϰ āĻšāĻŋāϏāĻžāĻŦ⧇āĨ¤ C++ āĻ āĻāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻāϰāĻ•āĻŽ āĻ•āĻŋāϛ⧁ āĻšāĻŦ⧇:

    template <T> class IntHash {
      vector<pair<int,T>> _map;
    }

āϤāĻžāχ, alpha - āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ! āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ C++ āĻ āφāĻĒāύāĻŋ T āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϕ⧇ āφāϞāĻĢāĻž, āĻŦāĻŋāϟāĻž āϞāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇... āĻ•āĻŋāĻ¨ā§āϤ⧁ 8āϟāĻŋāϰ āĻŦ⧇āĻļāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāϝāĻŧ, āĻāĻ–āĻžāύ⧇āχ āĻĢā§āϝāĻžāĻ¨ā§āϟāĻžāϏāĻŋ āĻļ⧇āώ āĻšāϝāĻŧāĨ¤ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āϏ⧇āĻ¨ā§āϟ āĻĒāĻŋāϟāĻžāĻ°ā§āϏāĻŦāĻžāĻ°ā§āϗ⧇ āĻāĻ• āϏāĻŽāϝāĻŧ āĻāϰāĻ•āĻŽ āĻ•āĻŋāϛ⧁ āϏāĻ‚āϞāĻžāĻĒ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ:

-- Надо ŅĐ´ĐĩĐģĐ°Ņ‚ŅŒ в TL ŅˆĐ°ĐąĐģĐžĐŊŅ‹
-- БĐģ... ĐŅƒ ĐŋŅƒŅŅ‚ŅŒ ĐŋĐ°Ņ€Đ°ĐŧĐĩ҂Ҁҋ ĐˇĐžĐ˛ŅƒŅ‚ аĐģŅŒŅ„Đ°, ĐąĐĩŅ‚Đ°,... КаĐēиĐĩ Ņ‚Đ°Đŧ Đĩ҉ґ ĐąŅƒĐēĐ˛Ņ‹ ĐĩŅŅ‚ŅŒ... О, Ņ‚ŅŅ‚Đ°!
-- Đ“Ņ€Đ°ĐŧĐŧĐ°Ņ‚Đ¸Đēа? ĐŅƒ ĐŋĐžŅ‚ĐžĐŧ ĐŊаĐŋĐ¸ŅˆĐĩĐŧ

-- ĐĄĐŧĐžŅ‚Ņ€Đ¸Ņ‚Đĩ, ĐēаĐēОК Ņ ŅĐ¸ĐŊŅ‚Đ°ĐēŅĐ¸Ņ ĐŋŅ€Đ¸Đ´ŅƒĐŧаĐģ Đ´ĐģŅ ŅˆĐ°ĐąĐģĐžĐŊОв и вĐĩĐēŅ‚ĐžŅ€Đ°!
-- ĐĸŅ‹ Đ´ĐžĐģйаĐŊ҃ĐģŅŅ, ĐēаĐē ĐŧŅ‹ ŅŅ‚Đž ĐŋĐ°Ņ€ŅĐ¸Ņ‚ŅŒ ĐąŅƒĐ´ĐĩĐŧ?
-- Да ĐŊĐĩ ҁҁҋ҂Đĩ, ĐžĐŊ Ņ‚Đ°Đŧ ОдиĐŊ в ҁ҅ĐĩĐŧĐĩ, ĐˇĐ°Ņ…Đ°Ņ€ĐēĐžĐ´Đ¸Ņ‚ŅŒ -- и ĐžĐē

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ TL āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ›āĻŋāϞ "āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇"āĨ¤ āφāϏ⧁āύ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āύāĻŋāĻœā§‡āĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āϝāĻžāĻ•āĨ¤

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋāϰ āĻ•āĻžāϛ⧇ āĻļāĻŦā§āĻĻ:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [09.10.18 17:07] āφāϏāϞ āĻŦā§āϝāĻžāĻĒāĻžāϰ āĻšāϞ⧋ āϤāĻžāϰāĻž āĻ…āύ⧇āĻ• āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤāϤāĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇, āϤāĻžāϰāĻĒāϰ āϏ⧇āϗ⧁āϞ⧋ āϭ⧁āϞ⧇ āϗ⧇āϛ⧇, āĻāĻŦāĻ‚ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟāϰāϟāĻŋāϕ⧇ āĻ•ā§āϰāĻžāϚ āĻĻāĻŋāϝāĻŧ⧇ āĻĸ⧇āϕ⧇ āĻĻāĻŋāϝāĻŧ⧇āϛ⧇āĨ¤
āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻĒā§āϰāĻĨāĻŽā§‡ āĻĄāĻ• āĻĒāĻžāχāϞāϟ.āĻœā§‡āĻĒāĻŋāϜāĻŋ āĻĨ⧇āϕ⧇
āϤāĻžāϰāĻĒāϰ dzhekichan.webp āϕ⧋āĻĄ āĻĨ⧇āϕ⧇

āĻ…āĻŦāĻļā§āϝāχ, āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻāĻŦāĻ‚ āĻ—āĻŖāĻŋāϤ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻĻ⧇āϰ āĻ•āĻžāĻ› āĻĨ⧇āϕ⧇, āφāĻŽāϰāĻž āφāĻļāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āϤāĻžāϰāĻž āφāĻšā§‹, āωāϞāĻŽā§āϝāĻžāύ āĻĒāĻĄāĻŧ⧇āϛ⧇āύ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻāϏāĻāϞ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰāϗ⧁āϞāĻŋ āϞ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻ•āϝāĻŧ⧇āĻ• āĻĻāĻļāĻ• āϧāϰ⧇ āĻļāĻŋāĻ˛ā§āĻĒ⧇ āĻĄāĻŋ āĻĢā§āϝāĻžāĻ•ā§āĻŸā§‹ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻšāϝāĻŧ⧇ āωāϠ⧇āϛ⧇ āĻāĻŽāύ āϏāϰāĻžā§āϜāĻžāĻŽāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ, āϤāĻžāχ āύāĻž?

āĻĻā§āĻŦāĻžāϰāĻž āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ-cli āĻ­āĻžāχāϟāĻžāϞāĻŋ āĻ­ā§āϝāĻžāĻ˛ā§āϟāĻŽā§āϝāĻžāύ, āϟāĻŋāĻāϞāĻ“ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ (cli) āϏ⧀āĻŽāĻžāύāĻžāϰ āĻŦāĻžāχāϰ⧇āϰ āϘāϟāύāĻž āĻĨ⧇āϕ⧇ āĻŦā§‹āĻāĻž āϝāĻžāϝāĻŧ, āĻĻāϞ⧇āϰ āĻāĻ•āϜāύ āϏāĻĻāĻ¸ā§āϝ - āĻāĻ–āύ TL āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇, āĻ•āĻŋ āϤāĻžāϰ āĻ›āĻžāĻĒ TL āĻĒāĻžāĻ°ā§āϏāĻžāϰ? ..

16.12 04:18 āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āφāĻŽāĻžāϰ āĻŽāύ⧇ āĻšāϝāĻŧ āϕ⧇āω lex+yacc āφāϝāĻŧāĻ¤ā§āϤ āĻ•āϰ⧇āύāĻŋ
16.12 04:18 āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āφāĻŽāĻŋ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ āύāĻž
16.12 04:18 āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āĻ­āĻžāϞ, āĻ…āĻĨāĻŦāĻž āϤāĻžāĻĻ⧇āϰ āĻ­āĻŋāϕ⧇ āϞāĻžāχāύ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻ°ā§āĻĨ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ
16.12 04:19 āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: 3k+ āϞāĻžāχāύ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ<censored> āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϏāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇

āϏāĻŽā§āĻ­āĻŦāϤ āĻāĻ•āϟāĻŋ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ? āĻĻ⧇āĻ–āĻž āϝāĻžāĻ• āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āϰ⧇ āĻāϟāĻŋ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ - āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ:

    nametype = re.match(r'([a-zA-Z.0-9_]+)(#[0-9a-f]+)?([^=]*)=s*([a-zA-Z.<>0-9_]+);', line);
    if (not nametype):
      if (not re.match(r'vector#1cb5c415 {t:Type} # [ t ] = Vector t;', line)):
         print('Bad line found: ' + line);

āĻĒāĻžāχāĻĨāύ⧇ 1100+ āϞāĻžāχāύ, āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ + āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ⧇āϰ āĻŽāϤ⧋ āĻŦāĻŋāĻļ⧇āώ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϝāĻž āĻ…āĻŦāĻļā§āϝāχ, āϟāĻŋāĻāϞ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ¸ā§āĻ•āĻŋāĻŽā§‡ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϤāĻŦ⧇ āϤāĻžāϰāĻž āĻāϟāĻŋ āĻĒāĻžāĻ°ā§āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāχ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĻ›āĻŋāϞ ... āĻĒā§āϰāĻļā§āύ āϜāĻžāϗ⧇, āϕ⧇āύ āϏāĻŦ āĻ…āϞ⧌āĻ•āĻŋāĻ• āĻ›āĻŋāϞ?иāĻāϟāĻŋ āφāϰāĻ“ āĻ¸ā§āϤāϰāϝ⧁āĻ•ā§āϤ āϝāĻĻāĻŋ āϝāĻžāχāĻšā§‹āĻ• āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻ…āύ⧁āϏāĻžāϰ⧇ āϕ⧇āω āĻāϟāĻŋ āĻĒāĻžāĻ°ā§āϏ āĻ•āϰāϤ⧇ āϝāĻžāĻšā§āϛ⧇ āύāĻž?!

āϝāĻžāχāĻšā§‹āĻ•... āĻŽāύ⧇ āφāϛ⧇ āφāĻŽāϰāĻž CRC32 āĻšā§‡āĻ• āĻ•āϰāĻžāϰ āĻ•āĻĨāĻž āĻŦāϞ⧇āĻ›āĻŋāϞāĻžāĻŽ? āϏ⧁āϤāϰāĻžāĻ‚, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟāϰ⧇ āϏ⧇āχ āϧāϰāϪ⧇āϰ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āϰāϝāĻŧ⧇āϛ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻ—āĻŖāύāĻž āĻ•āϰāĻž CRC32 āĻŽā§‡āϞ⧇ āύāĻž āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻāĻ• āϏāĻ™ā§āϗ⧇!

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [ā§§ā§Ž.⧧⧍ ⧍⧍:ā§Ē⧝] āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻžāĻŦāĻž āωāϚāĻŋāϤ āϝ⧇ āĻāχ āϧāϰāϪ⧇āϰ āϟāĻŋāĻāϞ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ•āĻŋāύāĻž
āϝāĻĻāĻŋ āφāĻŽāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āϏāĻžāĻĨ⧇ āϤāĻžāϞāĻ—ā§‹āϞ āĻĒāĻžāĻ•āĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāϤ⧇ āϚāĻžāχ, āφāĻŽāĻŋ āϞāĻžāχāύ āĻŦāĻŋāϰāϤāĻŋ āϏāĻ¨ā§āύāĻŋāĻŦ⧇āĻļ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ, āĻ…āĻ°ā§āϧ⧇āĻ• āĻĒāĻžāĻ°ā§āϏāĻžāϰ āĻŦāĻšā§-āϞāĻžāχāύ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧ āĻ­āĻžāĻ™āĻŦ⧇
tdesktop, āϤāĻŦ⧇, āϖ⧁āĻŦ

āĻ“āϝāĻŧāĻžāύ-āϞāĻžāχāύāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϟāĻŋ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ, āφāĻŽāϰāĻž āĻāĻ•āϟ⧁ āĻĒāϰ⧇ āĻāϟāĻŋāϤ⧇ āĻĢāĻŋāϰ⧇ āϝāĻžāĻŦāĨ¤

āĻ āĻŋāĻ• āφāϛ⧇, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ-āĻ•ā§āϞāĻŋ āφāύāĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āϕ⧀ āĻšāĻŦ⧇? āϕ⧇ āϜāĻžāύ⧇?... āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϕ⧋āĻĄā§‡ āϕ⧋āύāĻ“ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻĒāĻžāĻ°ā§āϏāĻžāϰ āĻ›āĻŋāϞ āύāĻž (āϝāĻž āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻĒā§āϰāĻļā§āύ āϤ⧋āϞ⧇, āϤāĻŦ⧇ āĻāϟāĻŋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ), āϤāĻŦ⧇ āϕ⧋āĻĄā§‡āϰ āφāϰāĻ“ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŽāϜāĻžāϰ āϟ⧁āĻ•āϰ⧋ āĻ›āĻŋāϞ, āϤāĻŦ⧇ āϏ⧇āϗ⧁āϞāĻŋāϤ⧇ āφāϰāĻ“ āĻ•āĻŋāϛ⧁ āύ⧀āĻšā§‡āϰ āωāĻĒāϧāĻžāϰāĻžāĨ¤

āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻ…āύ⧁āĻļā§€āϞāύ⧇ āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻĒā§āϰāĻļā§āύ āωāĻ¤ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇? āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϤāĻžāϰāĻž āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ•āϰ⧇āϛ⧇, āĻ…āĻŦāĻļā§āϝāχ, āĻŦāĻŋāϟ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻļāĻ°ā§āϤāĻžāϧ⧀āύ āĻ•ā§āώ⧇āĻ¤ā§āϰāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: flags.0? true
āĻ•ā§āώ⧇āĻ¤ā§āϰāϟāĻŋ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻāĻŦāĻ‚ āĻĒāϤāĻžāĻ•āĻž āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāĻ•āϞ⧇ āϏāĻŽāĻžāύ āϏāĻ¤ā§āϝ

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: flags.1? int
āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ āϝ⧇ āĻ•ā§āώ⧇āĻ¤ā§āϰāϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻāĻŦāĻ‚ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āĻĻāϰāĻ•āĻžāϰ

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āĻ—āĻžāϧāĻž, āφāĻĒāύāĻŋ āĻ•āĻŋ āĻ•āϰāϛ⧇āύ āϤāĻž āύāĻŋāϝāĻŧ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŦ⧇āύ āύāĻž!
āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āĻĄāĻ•āϟāĻŋāϤ⧇ āϕ⧋āĻĨāĻžāĻ“ āĻāĻ•āϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ– āφāϛ⧇ āϝ⧇ āϏāĻ¤ā§āϝ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āĻļā§‚āĻ¨ā§āϝ-āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āĻĒā§āϰāĻ•āĻžāϰ, āϤāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āĻĄāĻ• āĻĨ⧇āϕ⧇ āĻ•āĻŋāϛ⧁ āĻāĻ•āĻ¤ā§āϰ āĻ•āϰāĻž āĻ…āϏāĻŽā§āĻ­āĻŦ
āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ: āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇ āĻāϟāĻž āĻšāϝāĻŧ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•ā§āϰāĻžāϚ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āϗ⧁āĻšā§āĻ› āϰāϝāĻŧ⧇āϛ⧇

āĻŸā§‡āϞāĻŋāĻĨāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋ? MTProto āĻŦāĻŋāώāϝāĻŧ⧇āϰ āĻĻāĻŋāϕ⧇ āϤāĻžāĻ•āĻŋāϝāĻŧ⧇, āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ - āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇ āĻāχ āϧāϰāύ⧇āϰ āϟ⧁āĻ•āϰāĻž āφāϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻžāχāύ % āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ "āĻĒā§āϰāĻĻāĻ¤ā§āϤ āĻŦ⧇āϝāĻŧāĻžāϰ-āϟāĻžāχāĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ" āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝ⧇āĻŽāύ āύ⧀āĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϗ⧁āϞāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻž āύāĻĨāĻŋāϭ⧁āĻ•ā§āϤ āĻ•āĻŋāϛ⧁ āφāϛ⧇:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [22.06.18/18/38 XNUMX:XNUMX] āĻāĻ• āϜāĻžā§ŸāĻ—āĻžā§Ÿ:

msg_container#73f1f8dc messages:vector message = MessageContainer;

āĻ­āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇:

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

āĻāĻŦāĻ‚ āĻāχ āĻĻ⧁āϟāĻŋ āĻŦāĻĄāĻŧ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ, āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻœā§€āĻŦāύ⧇ āĻāĻ•āϧāϰāύ⧇āϰ āύāĻ—ā§āύ āϭ⧇āĻ•ā§āϟāϰ āφāϏ⧇

āφāĻŽāĻŋ āĻāĻ•āϟāĻŋ āĻŦ⧇āϝāĻŧāĻžāϰ āϭ⧇āĻ•ā§āϟāϰ āϏāĻ‚āĻœā§āĻžāĻž āĻĻ⧇āĻ–āĻŋāύāĻŋ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϜ⧁āĻĄāĻŧ⧇ āφāϏāĻŋāύāĻŋ

āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻŸā§‡āϞāĻŋāĻĨāύ⧇ āĻšāĻžāϤ⧇ āϞ⧇āĻ–āĻž āĻšāϝāĻŧ

āϤāĻžāϰ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽā§‡ āϏāĻ‚āĻœā§āĻžāĻžāϟāĻŋ āĻŽāĻ¨ā§āϤāĻŦā§āϝ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ msg_container

āφāĻŦāĻžāϰ, āĻĒā§āϰāĻļā§āύāϟāĻŋ % āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϰāϝāĻŧ⧇ āϗ⧇āϛ⧇āĨ¤ āĻāϟāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž.

āĻ­āĻžāĻĻāĻŋāĻŽ āĻ—āύāϚāĻžāϰāĻ­, [22.06.18/19/22 XNUMX:XNUMX] āĻāĻŦāĻ‚ tdesktop āĻ?

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [22.06.18/19/23 XNUMX:XNUMX] āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻ•āĻĻ⧇āϰ āωāĻĒāϰ āϤāĻžāĻĻ⧇āϰ TL āĻĒāĻžāĻ°ā§āϏāĻžāϰ āϏāĻŽā§āĻ­āĻŦāϤ āĻāϟāĻŋ āĻ–āĻžāĻŦ⧇ āύāĻžāĨ¤

// parsed manually

TL āĻāĻ•āϟāĻŋ āϏ⧁āĻ¨ā§āĻĻāϰ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤāϤāĻž, āϕ⧇āω āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇ āύāĻž

āĻāĻŦāĻ‚ % āϤāĻžāĻĻ⧇āϰ āĻ¸ā§āĻ•āĻŋāĻŽā§‡āϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āύ⧇āχ

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āύāĻŋāĻœā§‡āχ āĻŦāĻŋāĻĒāϰ⧀āϤ, āϤāĻžāχ idk

āĻāϟāĻž āĻŦā§āϝāĻžāĻ•āϰāϪ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧇āϛ⧇, āϤāĻžāϰāĻž āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻ• āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāϤ⧇ āϭ⧁āϞ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇

āφāĻĒāύāĻŋ āϟāĻŋāĻāϞ-āĻ āύāĻĨāĻŋāϟāĻŋ āĻĻ⧇āϖ⧇āϛ⧇āύ, āφāĻĒāύāĻŋ āφāϧāĻž āϞāĻŋāϟāĻžāϰ āĻ›āĻžāĻĄāĻŧāĻž āĻāϟāĻŋ āĻŦ⧇āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž

"āĻ āĻŋāĻ• āφāϛ⧇, āφāϏ⧁āύ āĻŦāϞāĻŋ," āĻ…āĻ¨ā§āϝ āĻĒāĻžāĻ āĻ• āĻŦāϞāĻŦ⧇, "āφāĻĒāύāĻŋ āĻ•āĻŋāϛ⧁ āϏāĻŽāĻžāϞ⧋āϚāύāĻž āĻ•āϰ⧇āύ, āϤāĻžāχ āφāĻŽāĻžāϕ⧇ āĻĻ⧇āĻ–āĻžāύ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤"

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ: "āĻĒāĻžāĻ°ā§āϏāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻŋ āĻāϰ āĻŽāϤ⧋ āϜāĻŋāύāĻŋāϏ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰāĻŋ

    args: /* empty */ { $$ = NULL; }
        | args arg { $$ = g_list_append( $1, $2 ); }
        ;

    arg: LC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | LC_ID ':' condition '?' type-term { $$ = tl_arg_new_cond( $1, $5, $3 ); free($3); }
            | UC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | type-term { $$ = tl_arg_new( "", $1 ); }
            | '[' LC_ID ']' { $$ = tl_arg_new_mult( "", tl_type_new( $2, TYPE_MOD_NONE ) ); }
            ;

āĻāĻ•āϰāĻ•āĻŽā§‡āϰ āĻšā§‡āϝāĻŧ⧇ āĻ­āĻžāϞ⧋ āϞāĻžāϗ⧇

struct tree *parse_args4 (void) {
  PARSE_INIT (type_args4);
  struct parse so = save_parse ();
  PARSE_TRY (parse_optional_arg_def);
  if (S) {
    tree_add_child (T, S);
  } else {
    load_parse (so);
  }
  if (LEX_CHAR ('!')) {
    PARSE_ADD (type_exclam);
    EXPECT ("!");
  }
  PARSE_TRY_PES (parse_type_term);
  PARSE_OK;
}

āĻŦāĻž

        # Regex to match the whole line
        match = re.match(r'''
            ^                  # We want to match from the beginning to the end
            ([w.]+)           # The .tl object can contain alpha_name or namespace.alpha_name
            (?:
                #             # After the name, comes the ID of the object
                ([0-9a-f]+)    # The constructor ID is in hexadecimal form
            )?                 # If no constructor ID was given, CRC32 the 'tl' to determine it

            (?:s              # After that, we want to match its arguments (name:type)
                {?             # For handling the start of the '{X:Type}' case
                w+            # The argument name will always be an alpha-only name
                :              # Then comes the separator between name:type
                [wd<>#.?!]+  # The type is slightly more complex, since it's alphanumeric and it can
                               # also have Vector<type>, flags:# and flags.0?default, plus :!X as type
                }?             # For handling the end of the '{X:Type}' case
            )*                 # Match 0 or more arguments
            s                 # Leave a space between the arguments and the equal
            =
            s                 # Leave another space between the equal and the result
            ([wd<>#.?]+)     # The result can again be as complex as any argument type
            ;$                 # Finally, the line should always end with ;
            ''', tl, re.IGNORECASE | re.VERBOSE)

āĻāϟāĻŋ āĻĒ⧁āϰ⧋ āϞ⧇āĻ•ā§āϏāĻžāϰ:

    ---functions---         return FUNCTIONS;
    ---types---             return TYPES;
    [a-z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return LC_ID;
    [A-Z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return UC_ID;
    [0-9]+                  yylval.number = atoi(yytext); return NUM;
    #[0-9a-fA-F]{1,8}       yylval.number = strtol(yytext+1, NULL, 16); return ID_HASH;

    n                      /* skip new line */
    [ t]+                  /* skip spaces */
    //.*$                 /* skip comments */
    /*.**/              /* skip comments */
    .                       return (int)yytext[0];

āϏ⧇āϗ⧁āϞ⧋. āϏāĻšāϜāϤāϰ āĻšāϞ āĻāϟāĻŋāϕ⧇ āĻšāĻžāϞāĻ•āĻžāĻ­āĻžāĻŦ⧇ āϰāĻžāĻ–āĻžāĨ¤"

āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, TL-āĻāϰ āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āωāĻĒāϏ⧇āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāĻžāĻ°ā§āϏāĻžāϰ āĻāĻŦāĻ‚ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻŦā§āϝāĻžāĻ•āϰāϪ⧇āϰ āĻĒā§āϰāĻžāϝāĻŧ 100 āϞāĻžāχāύ āĻāĻŦāĻ‚ āĻœā§‡āύāĻžāϰ⧇āϟāϰ⧇āϰ ~300 āϞāĻžāχāύ⧇ āĻĢāĻŋāϟ āĻ•āϰ⧇ (āϏāĻŽāĻ¸ā§āϤ āĻ—āĻŖāύāĻž āĻ•āϰ⧇ printāĻāϰ āĻœā§‡āύāĻžāϰ⧇āĻŸā§‡āĻĄ āϕ⧋āĻĄ), āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϏ⧇ āφāĻ¤ā§āĻŽāĻĻāĻ°ā§āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϟāĻžāχāĻĒ āϤāĻĨā§āϝ āĻ–āϰāĻ—ā§‹āĻļ āϏāĻšāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāϞāĻŋāĻŽāϰāĻĢāĻŋāĻ• āϟāĻžāχāĻĒ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤ āĻŦ⧇āϏ āĻļā§āϰ⧇āĻŖā§€āϤ⧇ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ, āĻāĻŦāĻ‚ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰāϰāĻž āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰ āϏ⧂āĻ¤ā§āϰ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻāĻŦāĻ‚ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻĒāĻĻā§āϧāϤāĻŋ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āϟāĻžāχāĻĒ āĻ­āĻžāώāĻžāϰ āĻ…āĻ­āĻžāĻŦ

āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āϟāĻžāχāĻĒāĻŋāĻ‚ āĻāĻ•āϟāĻŋ āĻ­āĻžāϞ āϜāĻŋāύāĻŋāϏ, āϤāĻžāχ āύāĻž? āύāĻž, āĻāϟāĻŋ āĻšāϞāĻŋāĻ­āĻžāϰ āύāϝāĻŧ (āϝāĻĻāĻŋāĻ“ āφāĻŽāĻŋ āĻ—āϤāĻŋāĻļā§€āϞ āĻ­āĻžāώāĻž āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰāĻŋ), āϤāĻŦ⧇ TL āĻāϰ āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āĻŽāĻžāύāĨ¤ āĻāϟāĻŋāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇, āĻ­āĻžāώāĻžāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āϧāϰāϪ⧇āϰ āĻšā§‡āĻ• āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻ“āϝāĻŧ⧇āϞ, āĻ āĻŋāĻ• āφāϛ⧇, āĻšāϝāĻŧāϤ⧋ āϤāĻŋāύāĻŋ āύāĻŋāĻœā§‡āχ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻŋāύāĻŋ āĻ…āĻ¨ā§āϤāϤ āϤāĻžāĻĻ⧇āϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āĻ•āĻŋ āϧāϰāύ⧇āϰ āϏ⧁āϝ⧋āĻ— āϚāĻžāχ?

āĻĒā§āϰāĻĨāĻŽāϤ, āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻžāĨ¤ āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻĢāĻžāχāϞ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋ:

āĻĢāĻžāχāϞ⧇āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āϤāĻžāϰāĻĒāϰ āĻ…āĻ‚āĻļ⧇ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϏāĻŽāĻ¸ā§āϤ āĻ…āĻ‚āĻļ āĻāĻ•āχ āφāĻ•āĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇ ( part_size ) āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻļāĻ°ā§āϤāϗ⧁āϞāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻĒā§‚āϰāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

  • part_size % 1024 = 0 (1KB āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ­āĻžāĻœā§āϝ)
  • 524288 % part_size = 0 (512KB āĻ…āĻŦāĻļā§āϝāχ part_size āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻ­āĻžāĻœā§āϝ āĻšāϤ⧇ āĻšāĻŦ⧇)

āĻļ⧇āώ āĻ…āĻ‚āĻļāϟāĻŋāϕ⧇ āĻāχ āĻļāĻ°ā§āϤāϗ⧁āϞāĻŋ āĻĒā§‚āϰāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āύāĻž, āϝāĻĻāĻŋ āĻāϰ āφāĻ•āĻžāϰ part_size āĻĨ⧇āϕ⧇ āĻ•āĻŽ āĻšāϝāĻŧāĨ¤

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻ‚āĻļ⧇āϰ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻŽ āϏāĻ‚āĻ–ā§āϝāĻž āĻĨāĻžāĻ•āĻž āωāϚāĻŋāϤ, āĻĢāĻžāχāϞ_āĻĒāĻžāĻ°ā§āϟ, 0 āĻĨ⧇āϕ⧇ 2,999 āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻŽāĻžāύ āϏāĻšāĨ¤

āĻĢāĻžāχāϞāϟāĻŋ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āφāĻĒāύāĻžāϕ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ upload.saveBigFilePart āĻĢāĻžāχāϞ⧇āϰ āĻĒā§‚āĻ°ā§āĻŖ āφāĻ•āĻžāϰ 10 MB āĻāϰ āĻŦ⧇āĻļāĻŋ āĻšāϞ⧇ āĻāĻŦāĻ‚ upload.saveFilePart āϛ⧋āϟ āĻĢāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝāĨ¤
[...] āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĄā§‡āϟāĻž āχāύāĻĒ⧁āϟ āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻŋāϰ⧇ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇:

  • FILE_PARTS_INVALID — āĻ…āĻ‚āĻļ⧇āϰ āĻ…āĻŦ⧈āϧ āϏāĻ‚āĻ–ā§āϝāĻžāĨ¤ āĻŽāĻžāύ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āύ⧇āχ 1..3000

āĻāχ āϕ⧋āύ āϚāĻŋāĻ¤ā§āϰ⧇ āφāϛ⧇? āĻāχ āĻāĻ•āϰāĻ•āĻŽ TL āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϰāĻ•āĻžāĻļāϝ⧋āĻ—ā§āϝ? āύāĻž. āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŽāĻžāĻĢ āĻ•āϰāĻŦ⧇āύ, āĻāĻŽāύāĻ•āĻŋ āĻĻāĻžāĻĻāĻžāϰ āϟāĻžāĻ°ā§āĻŦā§‹ āĻĒāĻžāĻ¸ā§āĻ•āĻžāϞāĻ“ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϧāϰāύ⧇āϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇āĻ›āĻŋāϞ⧇āύ āĻĒāϰāĻŋāϏ⧀āĻŽāĻž. āĻāĻŦāĻ‚ āϤāĻŋāύāĻŋ āφāϰāĻ“ āĻāĻ•āϟāĻŋ āϜāĻŋāύāĻŋāϏ āϜāĻžāύāϤ⧇āύ, āϝāĻž āĻāĻ–āύ āĻŦ⧇āĻļāĻŋ āĻĒāϰāĻŋāϚāĻŋāϤ enum - āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ (āϛ⧋āϟ) āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻŽāĻžāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ—āĻŖāύāĻž āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻžāϰāĨ¤ āϏāĻŋ-āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻŽāϤ⧋ āĻ­āĻžāώāĻžāϗ⧁āϞāĻŋāϤ⧇, āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āφāĻŽāϰāĻž āĻāĻ–āύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϕ⧇āĻŦāϞ āĻĒā§āϰāĻ•āĻžāϰāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞ⧇āĻ›āĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϰ. āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…ā§āϝāĻžāϰ⧇, āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āĻ“ āφāϛ⧇... āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāχ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻĢā§‹āύ āύāĻŽā§āĻŦāϰ āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻ­āĻžāϞ⧋ āĻšāĻŦ⧇, āϤāĻžāχ āύāĻž?

āĻāϰ āϕ⧋āύ⧋āϟāĻŋāχ āϟāĻŋāĻāϞ-āĻ āύ⧇āχāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϛ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, JSON āĻ¸ā§āĻ•āĻŋāĻŽāĻž. āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝ āϕ⧇āω 512 KB āĻāϰ āĻŦāĻŋāĻ­āĻžāĻœā§āϝāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻ°ā§āĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻāϟāĻŋ āĻāĻ–āύāĻ“ āϕ⧋āĻĄā§‡ āĻšā§‡āĻ• āĻ•āϰāĻž āĻĻāϰāĻ•āĻžāϰ, āϤāĻžāĻšāϞ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϝ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻĒāĻžāϰ⧇ āύāĻž āϏ⧀āĻŽāĻžāϰ āĻŦāĻžāχāϰ⧇ āĻāĻ•āϟāĻŋ āύāĻŽā§āĻŦāϰ āĻĒāĻžāĻ āĻžāύ 1..3000 (āĻāĻŦāĻ‚ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻ¤ā§āϰ⧁āϟāĻŋāϟāĻŋ āωāĻĻā§āĻ­ā§‚āϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž) āĻāϟāĻŋ āϏāĻŽā§āĻ­āĻŦ āĻšāϤ⧋, āϤāĻžāχ āύāĻž? ..

āωāĻĒāĻžāϝāĻŧ āĻĻā§āĻŦāĻžāϰāĻž, āĻ¤ā§āϰ⧁āϟāĻŋ āĻāĻŦāĻ‚ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻŽāĻžāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇. āĻāĻŽāύāĻ•āĻŋ āϝāĻžāϰāĻž TL āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇ āϤāĻžāϰāĻž āϤāĻžāĻĻ⧇āϰ āĻšā§‹āĻ– āĻāĻžāĻĒāϏāĻž āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧ - āĻāϟāĻŋ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāύ⧇ āĻšāϝāĻŧ āύāĻŋ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āϟāĻŋ TL-āĻ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āφāϏāϞ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻ°ā§āĻŖāĻŋāϤ āϰāĻŋāϟāĻžāĻ°ā§āύ āϟāĻžāχāĻĒ āύāϝāĻŧ, āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋāĻ“ āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ TL āύāĻŋāĻœā§‡āχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāϟāĻŋ āϕ⧋āύ⧋āĻ­āĻžāĻŦ⧇āχ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ āĻ…āĻŦāĻļā§āϝāχ, āĻāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻāĻŦāĻ‚ āĻ…āύ⧁āĻļā§€āϞāύ⧇ āϕ⧋āύāĻ“ āĻ•āĻŋāϛ⧁āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ (āϝāĻĻāĻŋāĻ“ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇, āφāϰāĻĒāĻŋāϏāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āωāĻĒāĻžāϝāĻŧ⧇ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āφāĻŽāϰāĻž āĻĒāϰ⧇ āĻāϟāĻŋāϤ⧇ āĻĢāĻŋāϰ⧇ āφāϏāĻŦ) - āϤāĻŦ⧇ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āĻ—āĻŖāĻŋāϤ⧇āϰ āϧāĻžāϰāĻŖāĻžāϗ⧁āϞāĻŋāϰ āĻŦāĻŋāĻļ⧁āĻĻā§āϧāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϕ⧀ āĻšāĻŦ⧇? āĻ¸ā§āĻŦāĻ°ā§āĻ—ā§€āϝāĻŧ āĻĒ⧃āĻĨāĻŋāĻŦā§€ āĻĨ⧇āϕ⧇?.. āφāĻŽāĻŋ āϟāĻžāĻ— āϤ⧁āϞ⧇āĻ›āĻŋ - āϤāĻžāχ āĻāϟāĻŋ āĻŽā§‡āϞ⧇āĨ¤

āĻāĻŦāĻ‚ āĻ…āĻŦāĻļ⧇āώ⧇, āĻĒāĻ āύāϝ⧋āĻ—ā§āϝāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋ? āĻ­āĻžāϞ, āϏ⧇āĻ–āĻžāύ⧇, āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āφāĻŽāĻŋ āϚāĻžāχ āĻŦāĻŋāĻŦāϰāĻŖ āĻāϟāĻŋ āĻ¸ā§āĻ•āĻŋāĻŽāĻžāϤ⧇ āĻ āĻŋāĻ• āφāϛ⧇ (āĻœā§‡āĻāϏāĻāύ āĻ¸ā§āĻ•āĻŋāĻŽāĻžāϤ⧇, āφāĻŦāĻžāϰ, āĻāϟāĻŋ), āϤāĻŦ⧇ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻāϟāĻŋ āύāĻŋāϝāĻŧ⧇ āϚāĻžāĻĒ⧇ āĻĨāĻžāϕ⧇āύ āϤāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĻāĻŋāĻ•āϟāĻŋ āϕ⧀ āĻšāĻŦ⧇ - āφāĻĒāĻĄā§‡āĻŸā§‡āϰ āϏāĻŽāϝāĻŧ āĻ…āĻ¨ā§āϤāϤ āϤ⧁āĻšā§āĻ›āĻ­āĻžāĻŦ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āϛ⧇āύ? āĻ āύāĻŋāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻĻ⧇āϖ⧁āύ āĻŦāĻžāĻ¸ā§āϤāĻŦ āωāĻĻāĻžāĻšāϰāĻŖ:

-channelFull#76af5481 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
+channelFull#1c87a71a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;

āĻŦāĻž

-message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
+message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;

āĻāϟāĻŋ āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ GitHub, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāχ āϧāϰāύ⧇āϰ āĻĻā§€āĻ°ā§āϘ āϞāĻžāχāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻšāĻžāχāϞāĻžāχāϟ āĻ•āϰāϤ⧇ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰ⧇āĨ¤ āϗ⧇āĻŽāϟāĻŋ "10āϟāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϖ⧁āρāϜ⧁āύ" āĻāĻŦāĻ‚ āĻŽāĻ¸ā§āϤāĻŋāĻˇā§āĻ• āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āϝāĻž āĻĻ⧇āϖ⧇ āϤāĻž āĻšāϞ āϝ⧇ āωāĻ­āϝāĻŧ āωāĻĻāĻžāĻšāϰāϪ⧇āϰ āĻļ⧁āϰ⧁ āĻāĻŦāĻ‚ āĻļ⧇āώ āĻāĻ•āχ, āφāĻĒāύāĻžāϕ⧇ āĻ•ā§āϞāĻžāĻ¨ā§āϤāĻŋāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻŽāĻžāĻāĻ–āĻžāύ⧇ āϕ⧋āĻĨāĻžāĻ“ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇... āφāĻŽāĻžāϰ āĻŽāϤ⧇, āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻ¤ā§āĻ¤ā§āĻŦ⧇ āύāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦāĻŋāĻļ⧁āĻĻā§āϧāĻ­āĻžāĻŦ⧇ āĻĻ⧃āĻļā§āϝāϤ āύ⧋āĻ‚āϰāĻž āĻāĻŦāĻ‚ āĻĸāĻžāϞ⧁.

āϝāĻžāχāĻšā§‹āĻ•, āϤāĻ¤ā§āĻ¤ā§āĻŦ⧇āϰ āĻŦāĻŋāĻļ⧁āĻĻā§āϧāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇āĨ¤ āϕ⧇āύ āφāĻŽāϰāĻž āĻŦāĻŋāϟ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ? āĻŽāύ⧇ āĻšāϝāĻŧ āύāĻž āĻ“āϰāĻž āĻ—āĻ¨ā§āϧ āϟāĻžāχāĻĒ āϤāĻ¤ā§āĻ¤ā§āĻŦ⧇āϰ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇ āĻ–āĻžāϰāĻžāĻĒ? āĻŦā§āϝāĻžāĻ–ā§āϝāĻžāϟāĻŋ āϚāĻŋāĻ¤ā§āϰāϟāĻŋāϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋāϤ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāĻĨāĻŽā§‡, āĻšā§āϝāĻžāρ, āĻāϟāĻŋ āĻāĻŽāύāχ āĻ›āĻŋāϞ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻšāĻžāρāϚāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϧāϰāϪ⧇āϰ āϤ⧈āϰāĻŋ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻāχ āϰ⧁āĻĄāĻŋāĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞāĻŋ āĻāĻ–āύāĻ“ āĻāχ āĻĢāĻ°ā§āĻŽāϟāĻŋāϤ⧇ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

storage.fileUnknown#aa963b05 = storage.FileType;
storage.filePartial#40bc6f52 = storage.FileType;
storage.fileJpeg#7efe0e = storage.FileType;
storage.fileGif#cae1aadf = storage.FileType;
storage.filePng#a4f63c0 = storage.FileType;
storage.filePdf#ae1e508d = storage.FileType;
storage.fileMp3#528a0677 = storage.FileType;
storage.fileMov#4b09ebbc = storage.FileType;
storage.fileMp4#b3cea0e4 = storage.FileType;
storage.fileWebp#1081464c = storage.FileType;

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āύ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰ⧁āύ, āφāĻĒāύāĻžāϰ āĻ•āĻžāĻ āĻžāĻŽā§‹āϤ⧇ āϝāĻĻāĻŋ 5āϟāĻŋ āϐāĻšā§āĻ›āĻŋāĻ• āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻžāϰ āϏāĻŽāĻ¸ā§āϤ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ⧇āϰ āϜāĻ¨ā§āϝ 32 āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇āĨ¤ āϏāĻŽā§āĻŽāĻŋāϞāĻŋāϤ āĻŦāĻŋāĻ¸ā§āĻĢā§‹āϰāĻŖāĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, TL āϤāĻ¤ā§āĻ¤ā§āĻŦ⧇āϰ āĻ¸ā§āĻĢāϟāĻŋāĻ• āĻŦāĻŋāĻļ⧁āĻĻā§āϧāϤāĻž āφāĻŦāĻžāϰāĻ“ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻ•āĻ ā§‹āϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāϤāĻžāϰ āĻĸāĻžāϞāĻžāχ-āϞ⧋āĻšāĻž āĻ—āĻžāϧāĻžāϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āĻ›āĻŋāĻ¨ā§āύāĻ­āĻŋāĻ¨ā§āύ āĻšāϝāĻŧ⧇ āϗ⧇āϛ⧇āĨ¤

āωāĻĒāϰāĻ¨ā§āϤ⧁, āĻ•āĻŋāϛ⧁ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻāχ āϛ⧇āϞ⧇āϰāĻž āύāĻŋāĻœā§‡āϰāĻžāχ āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āϟāĻžāχāĻĒā§‹āϞāϜāĻŋ āϞāĻ™ā§āϘāύ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, MTProto (āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ) āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž Gzip āĻĻā§āĻŦāĻžāϰāĻž āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϏāĻŦāĻ•āĻŋāϛ⧁ āĻ āĻŋāĻ• āφāϛ⧇ - āĻ¸ā§āϤāϰ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ•āĻŋāϟ āϞāĻ™ā§āϘāύ āĻ•āϰāĻž āĻ›āĻžāĻĄāĻŧāĻžāĨ¤ āφāĻŦāĻžāϰ, āĻāϟāĻŋ RpcResult āύāĻŋāĻœā§‡āχ āύāϝāĻŧ āϝ⧇āϟāĻŋ āĻ•āĻžāϟāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϤāĻŦ⧇ āĻāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āĨ¤ āφāĻšā§āĻ›āĻž, āĻāϟāĻž āϕ⧇āύ?... āφāĻŽāĻžāϕ⧇ āĻāĻ•āϟāĻž āĻ•ā§āϰāĻžāϚ āĻ•āĻžāϟāϤ⧇ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϝāĻžāϤ⧇ āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ āϝ⧇ āϕ⧋āύ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

āĻŦāĻž āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ, āφāĻŽāϰāĻž āĻāĻ•āĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰ⧇āĻ›āĻŋ - āĻāϟāĻŋ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ InputPeerUser āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ InputUser. āĻ…āĻĨāĻŦāĻž āωāϞāϟāĻž. āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻž āĻ•āĻžāϜ! āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϟāĻžāχāĻĒ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇ āύāĻžāĨ¤ āĻāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇? āωāĻ¤ā§āϤāϰāϟāĻŋ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ-āĻ•ā§āϞāĻŋ āĻĨ⧇āϕ⧇ āϕ⧋āĻĄ āϟ⧁āĻ•āϰ⧋ āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

  if (tgl_get_peer_type (E->id) != TGL_PEER_CHANNEL || (C && (C->flags & TGLCHF_MEGAGROUP))) {
    out_int (CODE_messages_get_history);
    out_peer_id (TLS, E->id);
  } else {    
    out_int (CODE_channels_get_important_history);

    out_int (CODE_input_channel);
    out_int (tgl_get_peer_id (E->id));
    out_long (E->id.access_hash);
  }
  out_int (E->max_id);
  out_int (E->offset);
  out_int (E->limit);
  out_int (0);
  out_int (0);

āĻ…āĻ¨ā§āϝ āĻ•āĻĨāĻžāϝāĻŧ, āĻāĻ–āĻžāύ⧇āχ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻ•āϰāĻž āĻšāϝāĻŧ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ, āĻœā§‡āύāĻžāϰ⧇āĻŸā§‡āĻĄ āϕ⧋āĻĄ āύāϝāĻŧ! āĻšāϝāĻŧāϤ⧋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇?... āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, āĻāϟāĻŋ āĻāĻ•āĻŦāĻžāϰ āĻ•āϰāĻž āĻšāϞ⧇ āĻāϟāĻŋ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāĻĄā§‡āĻŸā§‡āϰ āϏāĻŽāϝāĻŧ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇? āĻāχ āĻ¸ā§āĻ•āĻŋāĻŽ āωāĻĻā§āĻ­āĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇ āϕ⧇āύ? āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§āϰāĻļā§āύ⧇ āĻāĻ—āĻŋāϝāĻŧ⧇ āϝāĻžāχāĨ¤

āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻ•āϰāĻžāĨ¤ āĻ¸ā§āϤāϰ

āϕ⧇āύ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāĻŋāϤ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋāϕ⧇ āĻ¸ā§āϤāϰ āĻŦāϞāĻž āĻšāϝāĻŧ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻ¸ā§āĻ•āĻŋāĻŽā§āϝāĻžāϟāĻŋāĻ•ā§āϏ⧇āϰ āχāϤāĻŋāĻšāĻžāϏ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ, āĻĒā§āϰāĻĨāĻŽā§‡ āϞ⧇āĻ–āĻ•āϰāĻž āϭ⧇āĻŦ⧇āĻ›āĻŋāϞ⧇āύ āϝ⧇ āĻŽā§ŒāϞāĻŋāĻ• āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋ āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻ¸ā§āĻ•āĻŋāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϜāĻ¨ā§āϝ, āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āϏ⧇āϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, āĻāĻŽāύāĻ•āĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻžāϞ āϧāĻžāϰāĻŖāĻž - āĻāĻŦāĻ‚ āύāϤ⧁āύ āĻšāĻŦ⧇, āϝ⧇āĻŽāύāϟāĻŋ āĻ›āĻŋāϞ, "āĻŽāĻŋāĻļā§āϰ", āĻĒ⧁āϰāĻžāύ⧋āϟāĻŋāϰ āωāĻĒāϰ⧇ āĻ¸ā§āϤāϰāϝ⧁āĻ•ā§āϤāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĻ⧇āĻ–āĻž āϝāĻžāĻ• āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āϏāĻ¤ā§āϝ, āφāĻŽāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻĨ⧇āϕ⧇āχ āĻāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āϏāĻ•ā§āώāĻŽ āĻ›āĻŋāϞāĻžāĻŽ āύāĻž - āĻāϟāĻŋ āĻŽāϜāĻžāϰ, āϤāĻŦ⧇ āĻŦ⧇āϏ āϞ⧇āϝāĻŧāĻžāϰ⧇āϰ āϚāĻŋāĻ¤ā§āϰāϟāĻŋ āϕ⧇āĻŦāϞ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύ⧇āχāĨ¤ āĻ¸ā§āϤāϰāϗ⧁āϞāĻŋ 2 āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ⧇āϛ⧇⧎ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ TL āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāϞ⧇:

āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞ⧇āϝāĻŧāĻžāϰ 2 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•:

invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;

āĻ…āύ⧁āĻļā§€āϞāύ⧇, āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ āϝ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ API āĻ•āϞ āĻ•āϰāĻžāϰ āφāϗ⧇, āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ int 0x289dd1f6 āĻĒāĻĻā§āϧāϤāĻŋ āύāĻŽā§āĻŦāϰ⧇āϰ āφāϗ⧇ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻļā§‹āύāĻžāĻšā§āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϰāĻĒāϰ āϕ⧀ āĻšāϞ? āϤāĻžāϰāĻĒāϰ āĻšāĻžāϜāĻŋāϰ

invokeWithLayer3#b7475268 query:!X = X;

āϤāĻžāĻšāϞ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āĻŋ? āφāĻĒāύāĻŋ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ,

invokeWithLayer4#dea0d430 query:!X = X;

āĻšāĻžāĻ¸ā§āϝāĻ•āϰ? āύāĻž, āĻšāĻžāϏāϤ⧇ āϖ⧁āĻŦ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ, āĻŦāĻžāĻ¸ā§āϤāĻŦāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧁āύ āĻĒā§āϰāϤāĻŋ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ¸ā§āϤāϰ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āϧāϰāύ⧇āϰ āφāĻŦ⧃āϤ āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ - āϝāĻĻāĻŋ āϏ⧇āϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ āφāĻĒāύāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ? āĻāĻŦāĻ‚ āϏāĻžāĻŽāύ⧇ āĻŽāĻžāĻ¤ā§āϰ 4 āĻŦāĻžāχāϟ āϝ⧋āĻ— āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āϏ⧁āĻ¨ā§āĻĻāϰ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āϤāĻžāχ,

invokeWithLayer5#417a57ae query:!X = X;

āϤāĻŦ⧇ āĻāϟāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āϝ⧇ āĻ•āĻŋāϛ⧁āĻ•ā§āώāĻŖ āĻĒāϰ⧇ āĻāϟāĻŋ āĻāĻ•āϰāĻ•āĻŽ āĻŦāĻžāϚāύāϞāĻŋāϝāĻŧāĻžāϝāĻŧ āĻĒāϰāĻŋāĻŖāϤ āĻšāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āϏāĻŽāĻžāϧāĻžāύ āĻāϏ⧇āϛ⧇:

āφāĻĒāĻĄā§‡āϟ: āϞ⧇āϝāĻŧāĻžāϰ 9 āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁, āϏāĻšāĻžāϝāĻŧāĻ• āĻĒāĻĻā§āϧāϤāĻŋ invokeWithLayerN āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ initConnection

āĻšā§āϰāϰ⧇! 9 āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ āĻĒāϰ⧇, āφāĻŽāϰāĻž āĻ…āĻŦāĻļ⧇āώ⧇ 80-āĻāϰ āĻĻāĻļāϕ⧇ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāϗ⧁āϞāĻŋāϤ⧇ āϝāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϤāĻžāϤ⧇ āĻāϏ⧇āĻ›āĻŋ - āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻļ⧁āϰ⧁āϤ⧇ āĻāĻ•āĻŦāĻžāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āϏāĻŽā§āĻŽāϤ!

āϤāĻžāĻšāϞ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āĻŋ? ..

invokeWithLayer10#39620c41 query:!X = X;
...
invokeWithLayer18#1c900537 query:!X = X;

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ–āύāĻ“ āĻšāĻžāϏāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āφāϰāĻ“ 9āϟāĻŋ āĻ¸ā§āϤāϰ⧇āϰ āĻĒāϰ⧇, āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŽā§āĻŦāϰ āϏāĻš āĻāĻ•āϟāĻŋ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻ…āĻŦāĻļ⧇āώ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϝāĻž āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻļ⧁āϰ⧁āϤ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āĻŦāĻžāϰ āĻ•āϞ āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻāĻŦāĻ‚ āĻ¸ā§āϤāϰāϗ⧁āϞāĻŋāϰ āĻ…āĻ°ā§āĻĨ āĻ…āĻĻ⧃āĻļā§āϝ āĻšāϝāĻŧ⧇ āϗ⧇āϛ⧇ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇, āĻāĻ–āύ āĻāϟāĻŋ āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻļāĻ°ā§āϤāĻžāϧ⧀āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ, āϝ⧇āĻŽāύ āϏāĻ°ā§āĻŦāĻ¤ā§āϰ āĻ…āĻ¨ā§āϝ. āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ.

āĻ āĻŋāĻ•? ..

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [16.07.18/14/01 XNUMX:XNUMX] āĻļ⧁āĻ•ā§āϰāĻŦāĻžāϰ āφāĻŽāĻŋ āĻāχ āĻŦāĻŋāώāϝāĻŧ⧇ āϭ⧇āĻŦ⧇āĻ›āĻŋāϞāĻžāĻŽ:
āĻŸā§‡āϞāĻŋāϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻ›āĻžāĻĄāĻŧāĻž āχāϭ⧇āĻ¨ā§āϟ āĻĒāĻžāĻ āĻžāϝāĻŧ. āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻ…āĻŦāĻļā§āϝāχ InvokeWithLayer āĻ āφāĻŦ⧃āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇⧎ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻĒāĻĄā§‡āϟāϗ⧁āϞāĻŋ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ āύāĻž; āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻāĻŦāĻ‚ āφāĻĒāĻĄā§‡āϟāϗ⧁āϞāĻŋ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āϕ⧋āύāĻ“ āĻ•āĻžāĻ āĻžāĻŽā§‹ āύ⧇āχ⧎

āϏ⧇āϗ⧁āϞ⧋. āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϝ⧇ āĻ¸ā§āϤāϰāϟāĻŋāϤ⧇ āφāĻĒāĻĄā§‡āϟ āϚāĻžāϝāĻŧ āϤāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž

āĻ­āĻžāĻĻāĻŋāĻŽ āĻ—āύāϚāĻžāϰāĻ­, [16.07.18/14/02 XNUMX:XNUMX] InvokeWithLayer āĻ•āĻŋ āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻžāϚ āύāϝāĻŧ?

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [16.07.18/14/02 XNUMX:XNUMX] āĻāϟāĻžāχ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āωāĻĒāĻžāϝāĻŧ

āĻ­āĻžāĻĻāĻŋāĻŽ āĻ—āύāϚāĻžāϰāĻ­, [ā§Ļā§­/ā§§ā§Ŧ/ā§§ā§Ž ā§§ā§Ē:ā§Ļ⧍] āϝāĻžāϰ āĻ…āĻ°ā§āĻĨ āĻŽā§‚āϞāϤ āĻ…āϧāĻŋāĻŦ⧇āĻļāύ⧇āϰ āĻļ⧁āϰ⧁āϤ⧇ āĻ¸ā§āϤāϰāϟāĻŋāϰ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ

āϝāĻžāχāĻšā§‹āĻ•, āĻāϟāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āϝ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĄāĻžāωāύāĻ—ā§āϰ⧇āĻĄ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž

āφāĻĒāĻĄā§‡āϟ, i.e. āϟāĻžāχāĻĒ Updates āĻ¸ā§āĻ•āĻŋāĻŽā§‡, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āĻāĻĒāĻŋāφāχ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϜāĻŦāĻžāĻŦ⧇ āύāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āϘāϟāύāĻž āϘāϟāϞ⧇ āĻ¸ā§āĻŦāĻžāϧ⧀āύāĻ­āĻžāĻŦ⧇ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϜāϟāĻŋāϞ āĻŦāĻŋāώāϝāĻŧ āϝāĻž āĻ…āĻ¨ā§āϝ āĻĒā§‹āĻ¸ā§āĻŸā§‡ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšāĻŦ⧇, āϤāĻŦ⧇ āφāĻĒāĻžāϤāϤ āĻāϟāĻŋ āϜāĻžāύāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϝ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ…āĻĢāϞāĻžāχāύ⧇ āĻĨāĻžāĻ•āĻž āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻĒāĻĄā§‡āϟāϗ⧁āϞāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

āĻāχāĻ­āĻžāĻŦ⧇, āφāĻĒāύāĻŋ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϜ āĻāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āĻāϟāĻŋ āϝ⧌āĻ•ā§āϤāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āĻĻāĻŋāϕ⧇ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻ•āϰ⧇:

  • āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϕ⧋āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āϤāĻž āϜāĻžāύāĻžāύ⧋āϰ āφāϗ⧇āχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āφāĻĒāĻĄā§‡āϟ āĻĒāĻžāĻ āĻžāϝāĻŧ
  • āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āφāĻŽāĻžāϰ āĻ•āĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ?
  • āϕ⧇ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋāϞ⧇āϝāĻŧāĻžāϰ āύāĻŽā§āĻŦāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāϤāĻžāĻŽāϤ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϚāϞāĻžāĻ•āĻžāϞ⧀āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāĻŦ⧇ āύāĻž?

āφāĻĒāύāĻŋ āĻ•āĻŋ āĻŽāύ⧇ āĻ•āϰ⧇āύ āϝ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻ…āύ⧁āĻŽāĻžāύ, āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϟāĻŋ āϘāϟāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āĻ•āĻžāϰāĻŖ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϞ⧇āĻ–āĻž āĻšāϝāĻŧ⧇āϛ⧇ (āĻ…āĻ¨ā§āϤāϤ, āĻāϟāĻŋ āĻ­āĻžāϞāĻ­āĻžāĻŦ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇)? āĻšāĻž! āϏ⧇āϟāĻž āϝ⧇āĻ­āĻžāĻŦ⧇āχ āĻšā§‹āĻ• āύāĻž āϕ⧇āύ!

āĻāχ āφāĻŽāϰāĻž āφāĻ—āĻ¸ā§āĻŸā§‡ āĻĻ⧌āĻĄāĻŧ⧇ āĻ āĻŋāĻ• āĻ•āĻŋ. 14 āφāĻ—āĻ¸ā§āϟ, āϏ⧇āĻ–āĻžāύ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āĻ›āĻŋāϞ āϝ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ•āĻŋāϛ⧁ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇... āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āϞāĻ—āϗ⧁āϞāĻŋāϤ⧇:

2019-08-15 09:28:35.880640 MSK warn  main: ANON:87: unknown object type: 0x80d182d1 at TL/Object.pm line 213.
2019-08-15 09:28:35.751899 MSK warn  main: ANON:87: unknown object type: 0xb5223b0f at TL/Object.pm line 213.

āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϝāĻžāĻ• āĻŸā§āϰ⧇āϏ (āĻ­āĻžāϞ, āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āϞāĻ—āĻŋāĻ‚ āĻ āĻŋāĻ• āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ)āĨ¤ āϏāĻ°ā§āĻŦā§‹āĻĒāϰāĻŋ, āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ TL āϤ⧇ āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āύāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻžāχāύāĻžāϰāĻŋ, āϞāĻžāχāύ⧇āϰ āφāϰāĻ“ āύāĻŋāĻšā§‡ āϏāĻŽāĻ¸ā§āϤ āϝāĻžāϝāĻŧ, āĻĄāĻŋāϕ⧋āĻĄāĻŋāĻ‚ āĻ…āϏāĻŽā§āĻ­āĻŦ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤ āĻāĻŽāύ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āφāĻĒāύāĻžāϰ āϕ⧀ āĻ•āϰāĻž āωāϚāĻŋāϤ?

āĻ āĻŋāĻ• āφāϛ⧇, āϝ⧇ āĻ•āĻžāϰāĻ“ āĻŽāύ⧇ āĻĒā§āϰāĻĨāĻŽ āϜāĻŋāύāĻŋāϏāϟāĻŋ āφāϏ⧇ āϤāĻž āĻšāϞ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āφāĻŦāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻžāĨ¤ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āύāĻž. āφāĻŽāϰāĻž CRC32 āϗ⧁āĻ—āϞ āĻ•āϰāĻŋ - āĻāϗ⧁āϞāĻŋ 73 āĻ¸ā§āĻ•āĻŋāĻŽ āĻĨ⧇āϕ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻĻāĻŋāĻ“ āφāĻŽāϰāĻž 82-āĻ āĻ•āĻžāϜ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āφāĻŽāϰāĻž āϞāĻ—āϗ⧁āϞāĻŋ āϏāĻžāĻŦāϧāĻžāύ⧇ āĻĻ⧇āĻ–āĻŋ - āĻĻ⧁āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āĻ•āĻŋāĻŽ āĻĨ⧇āϕ⧇ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āϰāϝāĻŧ⧇āϛ⧇!

āĻšāϝāĻŧāϤ⧋ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…āύāĻžāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ• āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻŦāĻŋāĻļ⧁āĻĻā§āϧāĻ­āĻžāĻŦ⧇? āύāĻž, āφāĻŽāϰāĻž āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ 1.2.17 āϚāĻžāϞ⧁ āĻ•āϰāĻŋ (āϞāĻŋāύāĻžāĻ•ā§āϏ āĻŦāĻŋāϤāϰāϪ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϝāĻŧ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻž āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ), āĻāϟāĻŋ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ āϞāϗ⧇ āϞāĻŋāϖ⧇: MTP āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āϟāĻžāχāĻĒ āφāχāĻĄāĻŋ #b5223b0f MTPMessageMedia-āĻ āĻĒāĻĄāĻŧāĻžâ€Ļ

āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻāĻŦāĻ‚ āϏāĻžāĻ‚āĻ—āĻ āύāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻŽāĻžāϞ⧋āϚāύāĻžāĨ¤ āĻ…āĻ‚āĻļ 1, āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ: āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞ⧇āĻ–āĻžāϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž - TL, MT

āϗ⧁āĻ—āϞ āĻĻ⧇āĻ–āĻŋāϝāĻŧ⧇āϛ⧇ āϝ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧂āĻĒ āϏāĻŽāĻ¸ā§āϝāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ…āύāĻžāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ• āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϘāĻŸā§‡āϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϰāĻĒāϰ⧇ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€, āĻ…āύ⧁āĻŽāĻžāύāϗ⧁āϞāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻ›āĻŋāϞ ...

āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ? āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ āĻāĻŦāĻ‚ āφāĻŽāĻŋ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻšāϝāĻŧ⧇ āĻĒāĻĄāĻŧāĻŋ: āϤāĻŋāύāĻŋ āϏāĻžāĻ°ā§āĻ•āĻŋāϟ 91-āĻ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ, āφāĻŽāĻŋ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāύ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻāĻŦāĻ‚ 73-āĻ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϝāĻŧ⧇āĻ›āĻŋāĨ¤ āωāĻ­āϝāĻŧ āĻĒāĻĻā§āϧāϤāĻŋāχ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝ⧇āĻšā§‡āϤ⧁ āϤāĻžāϰāĻž āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻžāĻŽā§‚āϞāĻ•, āϤāĻžāχ āφāĻĒāύāĻžāϰ āĻ•āϤāϗ⧁āϞāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āωāĻĒāϰ⧇ āĻŦāĻž āύ⧀āĻšā§‡ āĻĻāϰāĻ•āĻžāϰ āϤāĻž āĻŦā§‹āĻāĻž āϝāĻžāĻšā§āϛ⧇ āύāĻžāĨ¤ āϞāĻžāĻĢ āĻĻāĻŋāϤ⧇, āĻŦāĻž āĻ•āϤāĻ•ā§āώāĻŖ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻĒāϰ⧇ āφāĻŽāĻŋ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϟāĻŋ āĻĒ⧁āύāϰ⧁āĻ¤ā§āĻĒāĻžāĻĻāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ⧇āĻ›āĻŋ: āφāĻŽāϰāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϚāĻžāϞ⧁ āĻ•āϰāĻŋ, āĻāϟāĻŋ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻŋ, āϏāĻžāĻ°ā§āĻ•āĻŋāϟāϟāĻŋāϕ⧇ āĻ…āĻ¨ā§āϝ āĻ¸ā§āϤāϰ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāĻŋ, āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāĻŋ, āφāĻŦāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āϧāϰāĻŋ, āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀āϟāĻŋāϤ⧇ āĻĢāĻŋāϰ⧇ āϝāĻžāχ - āωāĻĢ, āϕ⧋āύ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āϏāĻžāĻ°ā§āĻ•āĻŋāϟ āϏ⧁āχāϚāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻšāϝāĻŧ āύāĻž āĻ•āϝāĻŧ⧇āĻ• āĻŽāĻŋāύāĻŋāϟ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇āĨ¤ āφāĻĒāύāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āϤāϰ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ⧇āϰ āĻŽāĻŋāĻļā§āϰāĻŖ āĻĒāĻžāĻŦ⧇āύāĨ¤

āĻŦā§āϝāĻžāĻ–ā§āϝāĻž? āφāĻĒāύāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāϰ⧋āĻ•ā§āώ āωāĻĒāϏāĻ°ā§āĻ— āĻĨ⧇āϕ⧇ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŽā§‡āĻļāĻŋāύ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻ…āύ⧇āĻ• āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤāĨ¤ āϏāĻŽā§āĻ­āĻŦāϤ, "āĻŦāĻžāĻĢāĻžāϰāĻŋāĻ‚" āĻāϰ āϜāĻ¨ā§āϝ āĻĻāĻžāϝāĻŧā§€ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϤāĻžāϰ āϊāĻ°ā§āĻ§ā§āĻŦāϤāύāϰāĻž āϝāĻž āĻĻāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ āϤāĻž āϏāĻžāϰāĻŋāϤ⧇ āϰ⧇āϖ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āϤāĻžāϰāĻž āĻĒā§āϰāϜāĻ¨ā§āĻŽā§‡āϰ āϏāĻŽāϝāĻŧ āϝ⧇ āĻ¸ā§āĻ•āĻŋāĻŽā§‡ āĻ›āĻŋāϞ āϏ⧇āϟāĻŋ āĻĻāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻāĻŦāĻ‚ āĻāχ āϏāĻžāϰāĻŋ "āĻĒāϚāĻž" āύāĻž āĻšāĻ“āϝāĻŧāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ, āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋāϛ⧁āχ āĻ•āϰāĻž āϝāĻžāϝāĻŧāύāĻŋāĨ¤

āϏāĻŽā§āĻ­āĻŦāϤ... āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻž āĻāĻ•āϟāĻž āĻ­āϝāĻŧāĻžāύāĻ• āĻ•ā§āϰāĻžāϚ?!.. āύāĻž, āĻĒāĻžāĻ—āϞāĻžāĻŽāĻŋ āĻ­āĻžāĻŦāĻžāϰ āφāϗ⧇, āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āϕ⧋āĻĄ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āφāĻŽāϰāĻž āϕ⧋āύāĻ“ āϟāĻŋāĻāϞ āĻĒāĻžāĻ°ā§āϏāĻžāϰ āϖ⧁āρāĻœā§‡ āĻĒāĻžāχ āύāĻž, āϤāĻŦ⧇ (āĻĄāĻŋ) āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āϏāĻš āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ­āĻžāϰ⧀ āĻĢāĻžāχāϞ (āĻ—āĻŋāϟāĻšāĻžāĻŦ āĻāϟāĻŋāϕ⧇ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āϰāϤ⧇ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰ⧇) āϖ⧁āρāĻœā§‡ āĻĒāĻžāχāĨ¤ āĻāĻ–āĻžāύ⧇ āϕ⧋āĻĄ āĻ¸ā§āύāĻŋāĻĒ⧇āϟ āφāϛ⧇:

public static class TL_message_layer68 extends TL_message {
    public static int constructor = 0xc09be45f;
//...
//Đĩ҉Đĩ ĐŋĐ°Ņ‡Đēа ĐŋОдОйĐŊҋ҅
//...
    public static class TL_message_layer47 extends TL_message {
        public static int constructor = 0xc992e15c;
        public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
            Message result = null;
            switch (constructor) {
                case 0x1d86f70e:
                    result = new TL_messageService_old2();
                    break;
                case 0xa7ab1991:
                    result = new TL_message_old3();
                    break;
                case 0xc3060325:
                    result = new TL_message_old4();
                    break;
                case 0x555555fa:
                    result = new TL_message_secret();
                    break;
                case 0x555555f9:
                    result = new TL_message_secret_layer72();
                    break;
                case 0x90dddc11:
                    result = new TL_message_layer72();
                    break;
                case 0xc09be45f:
                    result = new TL_message_layer68();
                    break;
                case 0xc992e15c:
                    result = new TL_message_layer47();
                    break;
                case 0x5ba66c13:
                    result = new TL_message_old7();
                    break;
                case 0xc06b9607:
                    result = new TL_messageService_layer48();
                    break;
                case 0x83e5de54:
                    result = new TL_messageEmpty();
                    break;
                case 0x2bebfa86:
                    result = new TL_message_old6();
                    break;
                case 0x44f9b43d:
                    result = new TL_message_layer104();
                    break;
                case 0x1c9b1027:
                    result = new TL_message_layer104_2();
                    break;
                case 0xa367e716:
                    result = new TL_messageForwarded_old2(); //custom
                    break;
                case 0x5f46804:
                    result = new TL_messageForwarded_old(); //custom
                    break;
                case 0x567699b3:
                    result = new TL_message_old2(); //custom
                    break;
                case 0x9f8d60bb:
                    result = new TL_messageService_old(); //custom
                    break;
                case 0x22eb6aba:
                    result = new TL_message_old(); //custom
                    break;
                case 0x555555F8:
                    result = new TL_message_secret_old(); //custom
                    break;
                case 0x9789dac4:
                    result = new TL_message_layer104_3();
                    break;

āĻŦāĻž

    boolean fixCaption = !TextUtils.isEmpty(message) &&
    (media instanceof TLRPC.TL_messageMediaPhoto_old ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer68 ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer74 ||
     media instanceof TLRPC.TL_messageMediaDocument_old ||
     media instanceof TLRPC.TL_messageMediaDocument_layer68 ||
     media instanceof TLRPC.TL_messageMediaDocument_layer74)
    && message.startsWith("-1");

āĻšā§āĻŽ... āĻŦāĻ¨ā§āϝ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁, āϏāĻŽā§āĻ­āĻŦāϤ, āĻāϟāĻŋ āĻœā§‡āύāĻžāϰ⧇āĻŸā§‡āĻĄ āϕ⧋āĻĄ, āϤāĻžāϰāĻĒāϰ āĻ āĻŋāĻ• āφāϛ⧇? .. āϤāĻŦ⧇ āĻāϟāĻŋ āĻ…āĻŦāĻļā§āϝāχ āϏāĻŽāĻ¸ā§āϤ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇! āϏāĻ¤ā§āϝ, āϕ⧇āύ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ•āĻ¤ā§āϰ⧇ āĻŽāĻŋāĻļā§āϰāĻŋāϤ, āĻ—ā§‹āĻĒāύ āĻšā§āϝāĻžāϟ āĻāĻŦāĻ‚ āϏāĻŦ āϧāϰāϪ⧇āϰ āĻšāϝāĻŧ āϤāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āύāϝāĻŧ _old7 āϕ⧋āύ⧋āĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻļāĻŋāύ āĻœā§‡āύāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāϤ⧋ āϞāĻžāĻ—āϛ⧇ āύāĻž... āϝāĻžāχāĻšā§‹āĻ•, āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋ āφāĻŽāĻŋ āĻŦāĻŋāĻ¸ā§āĻŽāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ

TL_message_layer104
TL_message_layer104_2
TL_message_layer104_3

āĻŦāĻ¨ā§āϧ⧁āϰāĻž, āφāĻĒāύāĻŋ āĻ•āĻŋ āĻāĻ• āĻ¸ā§āϤāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āϕ⧀ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āύāĻž?! āφāĻšā§āĻ›āĻž, āĻ āĻŋāĻ• āφāϛ⧇, āϧāϰāĻž āϝāĻžāĻ• "āĻĻ⧁āϟāĻŋ" āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻš āĻŽā§āĻ•ā§āϤāĻŋ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāϞ, āφāĻšā§āĻ›āĻž, āĻāϟāĻŋ āϘāĻŸā§‡, āϤāĻŦ⧇ āϤāĻŋāύ?.. āĻāĻ–āύāχ, āφāĻŦāĻžāϰ āĻāĻ•āχ āϰ⧇āĻ•? āĻāϟāĻž āĻ•āĻŋ āϧāϰāύ⧇āϰ āĻĒāĻ°ā§āύ⧋āĻ—ā§āϰāĻžāĻĢāĻŋ, āĻĻ⧁āσāĻ–āĻŋāϤ?...

āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ⧇āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄā§‡, āϝāĻžāχāĻšā§‹āĻ•, āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧂āĻĒ āϜāĻŋāύāĻŋāϏ āϘāĻŸā§‡ - āϝāĻĻāĻŋ āϤāĻžāχ āĻšāϝāĻŧ, āĻ¸ā§āĻ•āĻŋāĻŽāϟāĻŋāϤ⧇ āĻāĻ• āϏāĻžāϰāĻŋāϤ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āϤāĻžāϰ āĻ¸ā§āϤāϰ āύāĻŽā§āĻŦāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āύāĻž, āϤāĻŦ⧇ āĻ•āĻŋāϛ⧁ āĻ āĻŋāĻ• āĻ•āϰ⧇āĨ¤ āĻāĻŽāύ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻ¸ā§āĻ•āĻŋāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āϕ⧋āύāĻ“ āϏāϰāĻ•āĻžāϰ⧀ āϤāĻĨā§āϝ⧇āϰ āωāĻ¤ā§āϏ āύ⧇āχ, āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āωāĻ¤ā§āϏ āϕ⧋āĻĄ āĻŦā§āϝāϤ⧀āϤ āĻāϟāĻŋ āϕ⧋āĻĨāĻž āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇? āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϏ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āύ āϤāĻŦ⧇ āφāĻĒāύāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž āϝ⧇ āĻ¸ā§āĻ•āĻŋāĻŽāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϏāĻ āĻŋāĻ• āĻ•āĻŋāύāĻž āϝāϤāĻ•ā§āώāĻŖ āύāĻž āφāĻĒāύāĻŋ āϏāĻŽāĻ¸ā§āϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇āύāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāχ āĻāĻŽāύāĻ•āĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇? āφāĻŽāĻŋ āφāĻļāĻž āĻ•āϰāĻŋ āχāωāύāĻŋāϟ, āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āĻ­āĻ•ā§āϤāϰāĻž āĻŽāĻ¨ā§āϤāĻŦā§āϝ⧇ āĻ­āĻžāĻ— āĻ•āϰāĻŦ⧇āĨ¤

āĻ āĻŋāĻ• āφāϛ⧇, āφāϏ⧁āύ āϕ⧋āĻĄā§‡āϰ āφāϰ⧇āĻ•āϟāĻŋ āĻ…āĻ‚āĻļ āĻĻ⧇āĻ–āĻŋ:

public static class TL_folders_deleteFolder extends TLObject {
    public static int constructor = 0x1c295881;

    public int folder_id;

    public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) {
        return Updates.TLdeserialize(stream, constructor, exception);
    }

    public void serializeToStream(AbstractSerializedData stream) {
        stream.writeInt32(constructor);
        stream.writeInt32(folder_id);
    }
}

//manually created

//RichText start
public static abstract class RichText extends TLObject {
    public String url;
    public long webpage_id;
    public String email;
    public ArrayList<RichText> texts = new ArrayList<>();
    public RichText parentRichText;

    public static RichText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
        RichText result = null;
        switch (constructor) {
            case 0x1ccb966a:
                result = new TL_textPhone();
                break;
            case 0xc7fb5e01:
                result = new TL_textSuperscript();
                break;

āĻāχ āĻŽāĻ¨ā§āϤāĻŦā§āϝāϟāĻŋ "āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āϤ⧈āϰāĻŋ" āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āϝāĻŧ āϝ⧇ āĻāχ āĻĢāĻžāχāϞāϟāĻŋāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āϞ⧇āĻ–āĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ (āφāĻĒāύāĻŋ āĻ•āĻŋ āĻĒ⧁āϰ⧋ āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāϪ⧇āϰ āĻĻ⧁āσāĻ¸ā§āĻŦāĻĒā§āύ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ?), āĻāĻŦāĻ‚ āĻŦāĻžāĻ•āĻŋāϟāĻŋ āĻŽā§‡āĻļāĻŋāύ āĻĻā§āĻŦāĻžāϰāĻž āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϤāĻžāϰāĻĒāϰ āφāϰ⧇āĻ•āϟāĻŋ āĻĒā§āϰāĻļā§āύ āĻ“āϠ⧇ - āϝ⧇ āϏ⧂āĻ¤ā§āϰ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ āύāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ (āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ•āĻžāĻ°ā§āύ⧇āϞ⧇ āĻāĻ•āϟāĻŋ āϞāĻž āϜāĻŋāĻĒāĻŋāĻāϞ āĻŦā§āϞāĻŦ), āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧāĨ¤

āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĨ⧇āĻˇā§āϟāĨ¤ āφāϏ⧁āύ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āĻĻāĻŋāϕ⧇ āĻāĻ—āĻŋāϝāĻŧ⧇ āϝāĻžāχ āϝāĻžāϰ āωāĻĒāϰ⧇ āĻāχ āϏāĻŽāĻ¸ā§āϤ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āϚāϞ⧇āĨ¤

āĻāĻŽāϟāĻŋāĻĒāĻŋāĻĒā§āϰ⧋āĻŸā§‹

āϏ⧁āϤāϰāĻžāĻ‚, āĻāϰ āĻ–ā§‹āϞāĻž āϝāĻžāĻ• āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāĻŦāϰāĻŖ и āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽ āϝ⧇ āĻŦāĻŋāώāϝāĻŧ⧇ āĻšā§‹āρāϚāϟ āĻ–āĻžāχ āϤāĻž āĻšāϞ āĻĒāϰāĻŋāĻ­āĻžāώāĻžāĨ¤ āĻāĻŦāĻ‚ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻžāϚ⧁āĻ°ā§āϝ āϏāĻ™ā§āϗ⧇. āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āĻāϟāĻŋ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻāĻ•āϟāĻŋ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻžāϧ⧀āύ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ - āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻŋāύāĻŋāϏāϕ⧇ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āĻ•āϞ āĻ•āϰāĻž, āĻŦāĻž āĻāĻ•āϟāĻŋ āĻļāĻŦā§āĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻ­āĻŋāĻ¨ā§āύ āϜāĻŋāύāĻŋāϏ, āĻŦāĻž āĻŦāĻŋāĻĒāϰ⧀āϤāĻ­āĻžāĻŦ⧇ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āωāĻšā§āϚ-āĻ¸ā§āϤāϰ⧇āϰ API-āĻ, āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āϟāĻŋāĻ•āĻžāϰ āĻĒā§āϝāĻžāĻ• āĻĻ⧇āϖ⧇āύ, āĻāϟāĻŋ āύāϝāĻŧ āφāĻĒāύāĻŋ āĻ•āĻŋ āϭ⧇āĻŦ⧇āĻ›āĻŋāϞ⧇āύ)āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, "āĻŽā§‡āϏ⧇āϜ" āĻāĻŦāĻ‚ "āϏ⧇āĻļāύ" āĻāϰ āĻ…āĻ°ā§āĻĨ āĻāĻ–āĻžāύ⧇ āϏāĻžāϧāĻžāϰāĻŖ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻ•āĻŋāϛ⧁āĨ¤ āĻ āĻŋāĻ• āφāϛ⧇, āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āĻāϟāĻŋ OOP āĻĒāĻĻ⧇ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻŦāĻž āϕ⧇āĻŦāϞ "āĻĒā§āϝāĻžāϕ⧇āϟ" āĻļāĻŦā§āĻĻāϟāĻŋ āĻŦāϞāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻŽā§āύ, āĻĒāϰāĻŋāĻŦāĻšāύ āĻ¸ā§āϤāϰ, āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻŽāϤ⧋ āĻāĻ•āχ āĻŦāĻžāĻ°ā§āϤāĻž āύ⧇āχ, āĻ…āύ⧇āĻ• āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻž āϰāϝāĻŧ⧇āϛ⧇ . āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āϧāĻŋāĻŦ⧇āĻļāύ ... āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻĨāĻŽ āϜāĻŋāύāĻŋāϏ āĻĒā§āϰāĻĨāĻŽ.

āĻĒāϰāĻŋāĻŦāĻšāύ āĻ¸ā§āϤāϰ

āĻĒā§āϰāĻĨāĻŽ āϜāĻŋāύāĻŋāϏāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻšāύāĨ¤ āϤāĻžāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ 5āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāϞāĻŦ⧇:

  • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ TCP
  • āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ
  • HTTPS āĻāϰ āωāĻĒāϰ āĻ“āϝāĻŧ⧇āĻŦāϏāϕ⧇āϟ
  • HTTP- āϰ
  • HTTPS āĻĻā§āĻŦāĻžāϰāĻž

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [15.06.18/15/04 XNUMX:XNUMX] UDP āĻĒāϰāĻŋāĻŦāĻšāύāĻ“ āφāϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āύāĻĨāĻŋāϭ⧁āĻ•ā§āϤ āύāϝāĻŧ

āĻāĻŦāĻ‚ āϟāĻŋāϏāĻŋāĻĒāĻŋ āϤāĻŋāύāϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡

āĻĒā§āϰāĻĨāĻŽāϟāĻŋ āϟāĻŋāϏāĻŋāĻĒāĻŋāϰ āωāĻĒāϰ āχāωāĻĄāĻŋāĻĒāĻŋāϰ āĻ…āύ⧁āϰ⧂āĻĒ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āĻŸā§‡ āĻāĻ•āϟāĻŋ āϏāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏ āύāĻŽā§āĻŦāϰ āĻāĻŦāĻ‚ āϏāĻŋāφāϰāϏāĻŋ āϰāϝāĻŧ⧇āϛ⧇
āϕ⧇āύ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āĻŸā§‡ āύāĻĨāĻŋ āĻĒāĻĄāĻŧāĻž āĻāϤ āĻŦ⧇āĻĻāύāĻžāĻĻāĻžāϝāĻŧāĻ•?

āĻ“āϝāĻŧ⧇āϞ, āĻāϟāĻž āĻāĻ–āύ āφāϛ⧇ TCP āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ 4āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āϰāϝāĻŧ⧇āϛ⧇⧎:

  • āϏāĻ‚āĻ•ā§āώ⧇āĻĒāĻŋāϤ
  • āĻ…āĻ¨ā§āϤāĻ°ā§āĻŦāĻ°ā§āϤ⧀
  • āĻĒā§āϝāĻžāĻĄā§‡āĻĄ āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀
  • āĻĒā§‚āĻ°ā§āĻŖ

āφāĻšā§āĻ›āĻž, āĻ āĻŋāĻ• āφāϛ⧇, MTProxy-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϝāĻžāĻĄā§‡āĻĄ āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āϟ, āĻāϟāĻŋ āĻĒāϰ⧇ āϏ⧁āĻĒāϰāĻŋāϚāĻŋāϤ āχāϭ⧇āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻžāϰāϪ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧇āύ āφāϰāĻ“ āĻĻ⧁āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ (āĻŽā§‹āϟ āϤāĻŋāύāϟāĻŋ) āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ? āĻŽā§‚āϞ MTProto āĻāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻāĻŦāĻ‚ āĻĒ⧇āϞ⧋āĻĄ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻžāϰ āϚāĻžāϰāϟāĻŋāχ āĻŽā§‚āϞāϤ āĻ­āĻŋāĻ¨ā§āύ, āϝāĻž āφāϰāĻ“ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšāĻŦ⧇:

  • āϏāĻ‚āĻ•ā§āώ⧇āĻĒ⧇ āĻāϟāĻŋ 1 āĻŦāĻž 4 āĻŦāĻžāχāϟ, āĻ•āĻŋāĻ¨ā§āϤ⧁ 0xef āύāϝāĻŧ, āϤāĻžāϰāĻĒāϰ āĻŦāĻĄāĻŋ
  • āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āĻŸā§‡ āĻāϟāĻŋ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ 4 āĻŦāĻžāχāϟ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ, āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇ 0xeeeeeeee āχāĻ™ā§āĻ—āĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϝ⧇ āĻāϟāĻŋ āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀
  • āĻāĻ•āϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ⧇āϰ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āφāϏāĻ•ā§āϤ: āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ, āĻ•ā§āϰāĻŽ āϏāĻ‚āĻ–ā§āϝāĻž, āĻāĻŦāĻ‚ āĻĒā§āϰāϧāĻžāύāϤ MTProto, āĻŦāĻĄāĻŋ, CRC32 āύāϝāĻŧāĨ¤ āĻšā§āϝāĻžāρ, āĻāχ āϏāĻŦāχ TCP-āĻāϰ āωāĻĒāϰ⧇āĨ¤ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āĻ•ā§āϰāĻŽāĻŋāĻ• āĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āφāĻ•āĻžāϰ⧇ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻĒāϰāĻŋāĻŦāĻšāύ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āĻšā§‡āĻ•āϏāĻžāĻŽāϗ⧁āϞāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ āĻ āĻŋāĻ• āφāϛ⧇, āĻāĻ–āύ āϕ⧇āω āφāĻŽāĻžāϕ⧇ āφāĻĒāĻ¤ā§āϤāĻŋ āĻ•āϰāĻŦ⧇ āϝ⧇ TCP āĻāϰ 16-āĻŦāĻŋāϟ āĻšā§‡āĻ•āϏāĻžāĻŽ āφāϛ⧇, āϤāĻžāχ āĻĄā§‡āϟāĻž āĻĻ⧁āĻ°ā§āύ⧀āϤāĻŋ āĻšāϝāĻŧāĨ¤ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āφāϏāϞ⧇ 16 āĻŦāĻžāχāĻŸā§‡āϰ āĻŦ⧇āĻļāĻŋ āĻšā§āϝāĻžāĻļ āϏāĻš āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϰāϝāĻŧ⧇āϛ⧇, āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻ¤ā§āϰ⧁āϟāĻŋ - āĻāĻŦāĻ‚ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ - āĻāĻ•āϟāĻŋ āωāĻšā§āϚ āĻ¸ā§āϤāϰ⧇ āĻāĻ•āϟāĻŋ SHA āĻ…āĻŽāĻŋāϞ āĻĻā§āĻŦāĻžāϰāĻž āϧāϰāĻž āĻšāĻŦ⧇⧎ āĻāϰ āωāĻĒāϰ⧇ CRC32 āĻāϰ āϕ⧋āύ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āύ⧇āχāĨ¤

āφāϏ⧁āύ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϤ⧁āϞāύāĻž āĻ•āϰāĻŋ, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ• āĻŦāĻžāχāϟ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āϏāĻŽā§āĻ­āĻŦ, āχāĻ¨ā§āϟāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧ⧇āĻŸā§‡āϰ āϏāĻžāĻĨ⧇, āϝāĻž āĻ¨ā§āϝāĻžāĻ¯ā§āϝāϤāĻž āĻĻ⧇āϝāĻŧ "āϝāĻĻāĻŋ 4-āĻŦāĻžāχāϟ āĻĄā§‡āϟāĻž āϏāĻžāϰāĻŋāĻŦāĻĻā§āϧāĻ•āϰāϪ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ," āϝāĻž āĻāϕ⧇āĻŦāĻžāϰ⧇āχ āĻŦāĻžāĻœā§‡ āĻ•āĻĨāĻžāĨ¤ āĻ•āĻŋ, āĻāϟāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāĻž āĻšāϝāĻŧ āϝ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϰāĻž āĻāϤāϟāĻžāχ āĻ…āĻ•ā§āώāĻŽ āϝ⧇ āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āϏāĻžāϰāĻŋāĻŦāĻĻā§āϧ āĻŦāĻžāĻĢāĻžāϰ⧇ āĻĄā§‡āϟāĻž āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž? āφāĻĒāύāĻžāϕ⧇ āĻāĻ–āύāĻ“ āĻāϟāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻ•āĻžāϰāĻŖ āĻĒāĻĄāĻŧāĻž āφāĻĒāύāĻžāϕ⧇ āϝ⧇āϕ⧋āύ⧋ āϏāĻ‚āĻ–ā§āϝāĻ• āĻŦāĻžāχāϟ āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ (āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•ā§āϏāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāĻ“ āϰāϝāĻŧ⧇āϛ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ...)āĨ¤ āĻ…āĻĨāĻŦāĻž āĻ…āĻ¨ā§āϝ āĻĻāĻŋāϕ⧇, āϕ⧇āύ āĻŦā§āϞāĻ• āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ–āύāĻ“ 16 āĻŦāĻžāχāĻŸā§‡āϰ āωāĻĒāϰ⧇ āĻ­āĻžāϰ⧀ āĻĒā§āϝāĻžāĻĄāĻŋāĻ‚ āĻĨāĻžāĻ•āĻŦ⧇ - 3 āĻŦāĻžāχāϟ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ ?

āĻāĻ•āϜāύ⧇āϰ āϧāĻžāϰāĻŖāĻž āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ āϝ⧇ āύāĻŋāϕ⧋āϞāĻžāχ āĻĻ⧁āϰāĻ­ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ āĻ…āĻ°ā§āĻĨ⧇ āϕ⧋āύ⧋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻžāĻĄāĻŧāĻžāχ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϏāĻš āϚāĻžāĻ•āĻžāϰ āύāϤ⧁āύ āωāĻĻā§āĻ­āĻžāĻŦāύ āĻ•āϰāϤ⧇ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰ⧇āύāĨ¤

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦāĻšāύ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āϏāĻšāĨ¤ āĻ“āϝāĻŧ⧇āĻŦ āĻāĻŦāĻ‚ MTProxy, āφāĻŽāϰāĻž āĻāĻ–āύ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻŦ āύāĻž, āĻšāϝāĻŧāϤ āĻ…āĻ¨ā§āϝ āĻĒā§‹āĻ¸ā§āĻŸā§‡, āϝāĻĻāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻĨāĻžāϕ⧇āĨ¤ āĻāχ āĻāĻ•āχ MTProxy āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇, āφāϏ⧁āύ āφāĻŽāϰāĻž āĻāĻ–āύ āĻļ⧁āϧ⧁ āĻŽāύ⧇ āϰāĻžāĻ–āĻŋ āϝ⧇ 2018 āϏāĻžāϞ⧇ āĻāϟāĻŋāϰ āĻĒā§āϰāĻ•āĻžāĻļ⧇āϰ āĻĒāϰāĻĒāϰāχ, āĻĒā§āϰāĻĻāĻžāύāĻ•āĻžāϰ⧀āϰāĻž āĻĻā§āϰ⧁āϤ āĻāϟāĻŋ āĻŦā§āϞāĻ• āĻ•āϰāϤ⧇ āĻļāĻŋāϖ⧇āĻ›āĻŋāϞ, āϝāĻžāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇ āĻŦāĻžāχāĻĒāĻžāϏ āĻŦā§āϞāĻ•āĻŋāĻ‚āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻĒā§āϝāĻžāϕ⧇āϜ āφāĻ•āĻžāϰ! āĻāĻŦāĻ‚ āĻāϟāĻŋāĻ“ āϝ⧇ MTProxy āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϏāĻŋ-āϤ⧇ āϞ⧇āĻ–āĻž (āφāĻŦāĻžāϰ āĻ“āϝāĻŧāĻžāĻ˛ā§āϟāĻŽā§āϝāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž) āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āĻ¤ā§āϝāϧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āφāĻŦāĻĻā§āϧ āĻ›āĻŋāϞ, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āĻŽā§‹āĻŸā§‡āχ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻŋāϞ āύāĻž (āĻĢāĻŋāϞ āϕ⧁āϞāĻŋāύ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻŦ⧇āύ), āĻāĻŦāĻ‚ Go āĻŦāĻž Node.js-āĻ āĻ…āύ⧁āϰ⧂āĻĒ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻšāĻŦ⧇ āĻāĻ•āĻļā§‹āϰāĻ“ āĻ•āĻŽ āϞāĻžāχāύ⧇ āĻĢāĻŋāϟāĨ¤

āϤāĻŦ⧇ āφāĻŽāϰāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞāĻŋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻŦāĻŋāĻ­āĻžāϗ⧇āϰ āĻļ⧇āώ⧇ āĻāχ āϞ⧋āĻ•āĻĻ⧇āϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āϏāĻžāĻ•ā§āώāϰāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ⧇ āφāρāĻ•āĻŦāĨ¤ āφāĻĒāĻžāϤāϤ, āϚāϞ⧁āύ OSI āϞ⧇āϝāĻŧāĻžāϰ 5, āϏ⧇āĻļāύ⧇ āϝāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻ• - āϝ⧇āĻ–āĻžāύ⧇ āϤāĻžāϰāĻž MTProto āϏ⧇āĻļāύ āϰ⧇āϖ⧇āϛ⧇āĨ¤

āϕ⧀, āĻŦāĻžāĻ°ā§āϤāĻž, āϏ⧇āĻļāύ, āĻĄāĻŋāĻĢāĻŋ-āĻšā§‡āϞāĻŽā§āϝāĻžāύ

āϤāĻžāϰāĻž āϏ⧇āĻ–āĻžāύ⧇ āĻāϟāĻŋāϕ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦ⧇ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āύāĻŋ... āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ āĻāĻ•āχ āϏ⧇āĻļāύ āύāϝāĻŧ āϝāĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϏ⧇āĻļāύ⧇āϰ āĻ…āϧ⧀āύ⧇ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•ā§āϰāĻŽāĻžāύ⧁āϏāĻžāϰ⧇āĨ¤

āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻāĻŦāĻ‚ āϏāĻžāĻ‚āĻ—āĻ āύāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻŽāĻžāϞ⧋āϚāύāĻžāĨ¤ āĻ…āĻ‚āĻļ 1, āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ: āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞ⧇āĻ–āĻžāϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž - TL, MT

āϤāĻžāχ āφāĻŽāϰāĻž āĻĒāϰāĻŋāĻŦāĻšāύ āĻ¸ā§āϤāϰ āĻĨ⧇āϕ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻžāχāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāĨ¤ āĻāϟāĻŋ āĻšāϝāĻŧ āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻŦāĻžāĻ°ā§āϤāĻž āĻŦāĻž āĻĒā§āϞ⧇āχāύāĻŸā§‡āĻ•ā§āϏāϟ - āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāĻ–āύāĻ“ āĻŽā§‚āϞ āϚ⧁āĻ•ā§āϤāĻŋāϰ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻĨāĻžāĻ•āĻŋ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϟāĻŋ āĻ•āϰāĻ›āĻŋāĨ¤ āφāĻŽāϰāĻž "āϕ⧀" āύāĻžāĻŽāĻ• āϧāĻžāϰāĻŖāĻžāϰ āϗ⧁āĻšā§āĻ› āϕ⧋āύāϟāĻŋāϰ āĻ•āĻĨāĻž āĻŦāϞāĻ›āĻŋ? āφāϏ⧁āύ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āϟāĻŋāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰāĻŋ (āφāĻŽāĻŋ āϏāĻ•āĻžāϞ 4 āϟāĻžāϝāĻŧ āĻ•ā§āϞāĻžāĻ¨ā§āϤ āĻŽāĻ¸ā§āϤāĻŋāĻˇā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āχāĻ‚āϰ⧇āϜāĻŋ āĻĨ⧇āϕ⧇ āφāĻŽāĻžāϰ āύāĻŋāĻœā§‡āϰ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•ā§āώāĻŽāĻžāĻĒā§āϰāĻžāĻ°ā§āĻĨā§€, āĻ•āĻŋāϛ⧁ āĻŦāĻžāĻ•ā§āϝāĻžāĻ‚āĻļāϗ⧁āϞāĻŋāϕ⧇ āϏ⧇āϗ⧁āϞāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āϏāĻšāϜ āĻ›āĻŋāϞ):

āĻŦāϞāĻž āĻšāϝāĻŧ āĻĻ⧁āϟāĻŋ āϏāĻ¤ā§āϤāĻž āφāϛ⧇ āϏ⧇āĻļāύ - "āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏ⧇āĻļāύ" āĻāϰ āĻ…āϧ⧀āύ⧇ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ UI āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ, āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏ⧇āĻļāύ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĄāĻŋāĻ­āĻžāχāϏ / OS āĻāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āϝāĻžāϝāĻŧ⧎
āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ - MTProto āĻ…āϧāĻŋāĻŦ⧇āĻļāύ, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋāϰ āĻ•ā§āϰāĻŽ āϏāĻ‚āĻ–ā§āϝāĻž āϰāϝāĻŧ⧇āϛ⧇ (āύāĻŋāĻŽā§āύ-āĻ¸ā§āϤāϰ⧇āϰ āĻ…āĻ°ā§āĻĨ⧇), āĻāĻŦāĻ‚ āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ TCP āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āĻžāϧāĻŋāĻ• MTProto āϏ⧇āĻļāύ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻĢāĻžāχāϞ āĻĄāĻžāωāύāϞ⧋āĻĄā§‡āϰ āĻ—āϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋āϰ āϜāĻ¨ā§āϝāĨ¤

āĻāχ āĻĻ⧁āχāϝāĻŧ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϏ⧇āĻļāύ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻŖāĻž āφāϛ⧇ āĻ…āύ⧁āĻŽā§‹āĻĻāύ. āĻ…āϧāσāĻĒāϤāύ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āϤāĻž āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŋ UI āϏ⧇āĻļāύ āĻāϟāĻžāϰ āĻŽāϤāχ āĻ…āύ⧁āĻŽā§‹āĻĻāύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻšāĻžāϝāĻŧ, āϏāĻŦāĻ•āĻŋāϛ⧁āχ āϜāϟāĻŋāϞāĨ¤ āϚāϞ⧁āύ āĻĻ⧇āĻ–āĻž āϝāĻžāĻ•:

  • āύāϤ⧁āύ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĒā§āϰāĻĨāĻŽā§‡ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āφāĻŦāĻĻā§āϧ āĻ•āϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻāϏāĻāĻŽāĻāϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ - āϤāĻžāχ āĻ…āύ⧁āĻŽā§‹āĻĻāύ
  • āĻāϟāĻž āĻĒā§āϰāĻĨāĻŽ āĻ­āĻŋāϤāϰ⧇ āϘāĻŸā§‡āϛ⧇ MTProto āĻ…āϧāĻŋāĻŦ⧇āĻļāύ, āϕ⧋āύāϟāĻŋ āφāϛ⧇ session_id āύāĻŋāĻœā§‡āϰ āĻ­āĻŋāϤāϰ⧇āĨ¤
  • āĻāχ āϧāĻžāĻĒ⧇, āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ āĻ…āύ⧁āĻŽā§‹āĻĻāύ и session_id āĻŦāϞāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āωāĻĻāĻžāĻšāϰāĻŖ - āĻāχ āĻļāĻŦā§āĻĻāϟāĻŋ āĻ•āĻŋāϛ⧁ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻāĻŦāĻ‚ āϕ⧋āĻĄā§‡ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻšāϝāĻŧ
  • āϤāĻžāϰāĻĒāϰ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϖ⧁āϞāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ MTProto āϏ⧇āĻļāύ āĻāĻ•āχ āĻ…āϧ⧀āύ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ - āĻāĻ•āχ āĻĄāĻŋāϏāĻŋāϰ āĻ•āĻžāϛ⧇āĨ¤
  • āϤāĻžāϰāĻĒāϰ⧇, āĻāĻ•āĻĻāĻŋāύ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āĻĢāĻžāχāϞāϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻ…āĻ¨ā§āϝ āĻĄāĻŋāϏāĻŋ - āĻāĻŦāĻ‚ āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĄāĻŋāϏāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāĻŦ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ !
  • āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āϜāĻžāύāĻžāύ⧋ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāϝāĻŧ āϝāĻžāϰāĻž āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰāϛ⧇, āϤāĻŦ⧇ āĻāĻ•āχ āĻ…āύ⧁āĻŽā§‹āĻĻāύ (UI āϏ⧇āĻļāύ), āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ API āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ auth.exportAuthorization āĻŦāĻžāĻĄāĻŧāĻŋāϤ⧇ āĻĄāĻŋāϏāĻŋ auth.importAuthorization āύāϤ⧁āύ āĻĄāĻŋāϏāĻŋāϤ⧇āĨ¤
  • āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ•āχ, āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ–ā§‹āϞāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇ MTProto āϏ⧇āĻļāύ (āĻĒā§āϰāϤāĻŋāϟāĻŋ āϤāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ session_id) āĻāχ āύāϤ⧁āύ āĻĄāĻŋāϏāĻŋ, āĻ…āϧ⧀āύ⧇ āϤāĻžāϰ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀.
  • āĻ…āĻŦāĻļ⧇āώ⧇, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāĻžāϰāĻĢ⧇āĻ•ā§āϟ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āϏāĻŋāĻ•ā§āϰ⧇āϏāĻŋ āϚāĻžāχāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ āĻŽāύ⧇ āĻšāĻšā§āĻ›āĻŋāϞ āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϕ⧀ - āĻĒā§āϰāϤāĻŋ āĻĄāĻŋāϏāĻŋ - āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ auth.bindTempAuthKey āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ - āĻāĻŦāĻ‚ āφāĻŦāĻžāϰ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ temp_auth_key āĻĄāĻŋāϏāĻŋ āĻĒā§āϰāϤāĻŋ, āϏāĻŦāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻžāϧāĻžāϰāĻŖ MTProto āϏ⧇āĻļāύ āĻāχ āĻĄāĻŋāϏāĻŋāϰ āĻ•āĻžāϛ⧇āĨ¤

āύ⧋āϟ āĻ•āϰ⧁āύ āϞāĻŦāĻŖ (āĻāĻŦāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇āϰ āϞāĻŦāĻŖ)āĻ“ āĻāĻ• āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϕ⧀ āϏ⧇āϗ⧁āϞ⧋. āϏāĻŦāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻ­āĻžāĻ— āĻ•āϰāĻž MTProto āϏ⧇āĻļāύ āĻāĻ•āχ āĻĄāĻŋāϏāĻŋāϰ āĻ•āĻžāϛ⧇āĨ¤

"āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ TCP āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻŽāĻ§ā§āϝ⧇" āĻŽāĻžāύ⧇ āĻ•āĻŋ? āϤāĻžāχ āĻāχ āĻŽāĻžāύ⧇ āĻ•āĻŋāϛ⧁āϟāĻž āĻāχāϰāĻ•āĻŽ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāĻŸā§‡ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āϕ⧁āĻ•āĻŋ - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ…āύ⧇āĻ• āϟāĻŋāϏāĻŋāĻĒāĻŋ āϏāĻ‚āϝ⧋āĻ— āĻŦāϜāĻžāϝāĻŧ āĻĨāĻžāϕ⧇ (āϟāĻŋāϕ⧇ āĻĨāĻžāϕ⧇), āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āĻĻāĻŋāύ āĻāϟāĻŋ āĻ–āĻžāϰāĻžāĻĒ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ HTTP āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ MTProto āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻ•ā§āϰāĻŽāĻžāύ⧁āϏāĻžāϰ⧇ āϏāĻ‚āĻ–ā§āϝāĻžāϝ⧁āĻ•ā§āϤ āĻāĻŦāĻ‚ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ āϝāĻĻāĻŋ āϤāĻžāϰāĻž āϟāĻžāύ⧇āϞ⧇ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰ⧇, āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āϭ⧇āϙ⧇ āϗ⧇āϛ⧇ - āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻāχ āϏ⧇āĻļāύ⧇ āϏāĻŽāĻ¸ā§āϤ āĻ•āĻŋāϛ⧁ āĻĒāĻžāĻ āĻžāĻŦ⧇ āϝāĻž āĻāϟāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻŽāϝāĻŧ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰ⧇āύāĻŋāĨ¤ TCP āϏāĻ‚āϝ⧋āĻ—āĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āωāĻĒāϰ⧇āϰ āϤāĻĨā§āϝāϗ⧁āϞāĻŋ āĻ…āύ⧇āĻ• āĻŽāĻžāϏ āϤāĻĻāĻ¨ā§āϤ⧇āϰ āĻĒāϰ⧇ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇, āφāĻŽāϰāĻž āĻ¸ā§āĻ•ā§āĻ°ā§āϝāĻžāϚ āĻĨ⧇āϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻ›āĻŋ? - āĻļ⧁āϰ⧁āϤ⧇ āĻĢāĻŋāϰ⧇ āϝāĻžāχāĨ¤

āϤāĻžāχ āĻāϰ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āϝāĻžāĻ• auth_key āĻ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄāĻŋāĻĢāĻŋ-āĻšā§‡āϞāĻŽā§āϝāĻžāύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ. āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻŦā§‹āĻāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž āϝāĻžāĻ•...

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [19.06.18 20:05] data_with_hash := SHA1(data) + data + (āϝ⧇āϕ⧋āύ⧋ āĻ°â€ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āĻŦāĻžāχāϟ); āϝāĻžāϤ⧇ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ 255 āĻŦāĻžāχāϟ āϏāĻŽāĻžāύ āĻšāϝāĻŧ;
āĻāύāĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āĻĄ_āĻĄā§‡āϟāĻž := RSA(āĻĄā§‡āϟāĻž_āĻ“āϝāĻŧāĻžāχāĻĨ_āĻšā§āϝāĻžāĻļ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ_āĻĒāĻžāĻŦāϞāĻŋāĻ•_āĻ•āĻŋ); āĻāĻ•āϟāĻŋ 255-āĻŦāĻžāχāϟ āĻĻā§€āĻ°ā§āϘ āϏāĻ‚āĻ–ā§āϝāĻž (āĻŦāĻĄāĻŧ āĻāĻ¨ā§āĻĄāĻŋāϝāĻŧāĻžāύ) āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻŽāĻĄā§āϞāĻžāϏ⧇āϰ āωāĻĒāϰ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻļāĻ•ā§āϤāĻŋāϤ⧇ āωāĻ¤ā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞāϟāĻŋ 256-āĻŦāĻžāχāϟ āϏāĻ‚āĻ–ā§āϝāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āϤāĻžāĻĻ⧇āϰ āĻ•āĻŋāϛ⧁ āĻĄā§‹āĻĒ DH āφāϛ⧇

āĻāĻ•āϟāĻŋ āϏ⧁āĻ¸ā§āĻĨ āĻŦā§āϝāĻ•ā§āϤāĻŋāϰ DH āĻŽāϤ āĻĻ⧇āĻ–āĻžāϝāĻŧ āύāĻž
dx-āĻ āϕ⧋āύ āĻĻ⧁āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āϕ⧀ āύ⧇āχ

āĻ āĻŋāĻ• āφāϛ⧇, āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāϟāĻŋ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻļāĻŋāĻˇā§āϟāĻžāĻ‚āĻļ āϰāϝāĻŧ⧇ āϗ⧇āϛ⧇ - āĻ•āĻžāĻœā§‡āϰ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝ⧇ āϤāĻŋāύāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇āĻ›āĻŋāϞ⧇āύāĨ¤ DoS āφāĻ•ā§āϰāĻŽāϪ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϏ⧁āϰāĻ•ā§āώāĻžāϰ āĻĒā§āϰāĻ•āĻžāϰāĨ¤ āφāϰ RSA āϕ⧀ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āĻŦāĻžāϰ āĻāĻ• āĻĻāĻŋāϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻŽā§‚āϞāϤ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ new_nonce. āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāχ āφāĻĒāĻžāϤāĻĻ⧃āĻˇā§āϟāĻŋāϤ⧇ āϏāĻšāϜ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻĢāϞ āĻšāĻŦ⧇, āφāĻĒāύāĻŋ āĻ•āĻŋ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāϤ⧇ āĻšāĻŦ⧇?

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [20.06.18/00/26 XNUMX:XNUMX] āφāĻŽāĻŋ āĻāĻ–āύāĻ“ āĻ…ā§āϝāĻžāĻĒāĻŋāĻĄā§‡āϰ āĻ…āύ⧁āϰ⧋āϧ⧇ āĻĒ⧌āρāĻ›āĻžāχāύāĻŋāĨ¤

āφāĻŽāĻŋ āĻāχ āĻ…āύ⧁āϰ⧋āϧāϟāĻŋ āĻĄāĻŋāĻāχāϚāϕ⧇ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āĻ›āĻŋ

āĻāĻŦāĻ‚, āĻĒāϰāĻŋāĻŦāĻšāύ āĻĄāϕ⧇ āĻāϟāĻŋ āĻŦāϞ⧇ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϕ⧋āĻĄā§‡āϰ 4 āĻŦāĻžāχāĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇āχ āĻļ⧇āώ

āφāĻšā§āĻ›āĻž, āϏ⧇ āφāĻŽāĻžāϕ⧇ āĻŦāϞāϞ -404, āϤāĻžāχ āĻ•āĻŋ?

āϤāĻžāχ āφāĻŽāĻŋ āϤāĻžāϕ⧇ āĻŦāϞ⧇āĻ›āĻŋāϞāĻžāĻŽ: "āĻāχāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āφāĻ™ā§āϗ⧁āϞ⧇āϰ āĻ›āĻžāĻĒ āϏāĻš āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϕ⧀ āĻĻāĻŋāϝāĻŧ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āφāĻĒāύāĻžāϰ āĻŦ⧁āϞāĻļāĻŋāϟ āϧāϰ⧁āύ, āφāĻŽāĻŋ DH āϚāĻžāχ," āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦā§‹āĻ•āĻž 404 āĻĻāĻŋāϝāĻŧ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϝāĻŧ

āφāĻĒāύāĻŋ āĻāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āĻŋ āĻŽāύ⧇ āĻšāĻŦ⧇? āĻ•āĻŋ āĻ•āϰ⧋? āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰāĻžāϰ āϕ⧇āω āύ⧇āχ (āϤāĻŦ⧇ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ)āĨ¤

āĻāĻ–āĻžāύ⧇ āϏāĻŦ āĻ¸ā§āĻŦāĻžāĻ°ā§āĻĨ āĻĄāĻ• āĻ•āϰāĻž āĻšāϝāĻŧ

āφāĻŽāĻžāϰ āφāϰ āĻ•āĻŋāϛ⧁ āĻ•āϰāĻžāϰ āύ⧇āχ, āφāĻŽāĻŋ āĻļ⧁āϧ⧁ āĻŦāĻžāϰāĻŦāĻžāϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāϰ āĻ¸ā§āĻŦāĻĒā§āύ āĻĻ⧇āϖ⧇āĻ›āĻŋ

āĻĻ⧁āϟāĻŋ 32 āĻŦāĻŋāϟ āϏāĻ‚āĻ–ā§āϝāĻžāĨ¤ āφāĻŽāĻŋ āĻ…āĻ¨ā§āϝ āϏāĻŦāĻžāϰ āĻŽāϤ āϤāĻžāĻĻ⧇āϰ āĻŦāĻ¸ā§āϤāĻžāĻŦāĻ¨ā§āĻĻā§€

āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻž, āĻāχ āĻĻ⧁āϟāĻŋ āϞāĻžāχāύ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ BE āĻšāĻŋāϏ⧇āĻŦ⧇ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇

āĻ­āĻžāĻĻāĻŋāĻŽ āĻ—āύāϚāĻžāϰāĻ­, [20.06.18/15/49 404:XNUMX] āφāϰ āĻāχ XNUMX āĻāϰ āĻ•āĻžāϰāϪ⧇?

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [⧍ā§Ļ.ā§Ļā§Ŧ.ā§§ā§Ž ā§§ā§Ģ:ā§Ē⧝] āĻšā§āϝāĻžāρ!

āĻ­āĻžāĻĻāĻŋāĻŽ āĻ—āύāϚāĻžāϰāĻ­, [20.06.18/15/50 XNUMX:XNUMX] āφāĻŽāĻŋ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāĻ›āĻŋ āύāĻž āϝ⧇ āϏ⧇ āϕ⧀ "āĻĒāĻžā§ŸāύāĻŋ"

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [20.06.18 15:50] āĻĒā§āϰāĻžāϝāĻŧ

āφāĻŽāĻŋ āĻĒā§āϰāĻžāχāĻŽ āĻĢā§āϝāĻžāĻ•ā§āϟāϰ% āĻ āĻāϰāĻ•āĻŽ āĻĒāϚāύ āϖ⧁āρāĻœā§‡ āĻĒāĻžāχāύāĻŋ)

āĻāĻŽāύāĻ•āĻŋ āφāĻŽāϰāĻž āĻ¤ā§āϰ⧁āϟāĻŋ āϰāĻŋāĻĒā§‹āĻ°ā§āϟāĻŋāĻ‚ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻŋāύāĻŋ

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [20.06.18/20/18 5:XNUMX] āĻ“āĻš, MDXNUMXāĻ“ āφāϛ⧇āĨ¤ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϤāĻŋāύāϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻšā§āϝāĻžāĻļ āφāϛ⧇āĨ¤

āϕ⧀ āĻĢāĻŋāĻ™ā§āĻ—āĻžāϰāĻĒā§āϰāĻŋāĻ¨ā§āϟ āύāĻŋāĻŽā§āύāϰ⧂āĻĒ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ:

digest = md5(key + iv)
fingerprint = substr(digest, 0, 4) XOR substr(digest, 4, 4)

SHA1 āĻāĻŦāĻ‚ sha2

āϤāĻžāχ āĻāϟāĻž āĻ•āϰāĻž āϝāĻžāĻ• auth_key āφāĻŽāϰāĻž āĻĄāĻŋāĻĢāĻŋ-āĻšā§‡āϞāĻŽā§āϝāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻ•āĻžāϰ⧇ 2048 āĻŦāĻŋāϟ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāĨ¤ āĻāϰāĻĒāϰ āĻ•āĻŋ? āĻāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰāĻŋ āϝ⧇ āĻāχ āϕ⧀āϟāĻŋāϰ āύ⧀āĻšā§‡āϰ 1024 āĻŦāĻŋāϟāϗ⧁āϞāĻŋ āϕ⧋āύāĻ“ āĻ­āĻžāĻŦ⧇āχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž... āϤāĻŦ⧇ āφāĻĒāĻžāϤāϤ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻž āϝāĻžāĻ•āĨ¤ āĻāχ āϧāĻžāĻĒ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ— āĻ•āϰāĻž āĻ—ā§‹āĻĒāύ āφāϛ⧇āĨ¤ āϟāĻŋāĻāϞāĻāϏ āϏ⧇āĻļāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāύāĻžāϞāĻ— āĻĒā§āϰāϤāĻŋāĻˇā§āĻ āĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāĻ•āϟāĻŋ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻ–āύāĻ“ āĻ•āĻŋāϛ⧁ āϜāĻžāύ⧇ āύāĻž āφāĻŽāϰāĻž āϕ⧇! āĻāĻ–āύāĻ“ āύāĻž, āφāϏāϞ⧇. āĻ…āύ⧁āĻŽā§‹āĻĻāύ. āϏ⧇āϗ⧁āϞ⧋. āφāĻĒāύāĻŋ āϝāĻĻāĻŋ "āϞāĻ—āχāύ-āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ" āĻāϰ āĻĒāϰāĻŋāĻĒā§āϰ⧇āĻ•ā§āώāĻŋāϤ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇āύ, āϝ⧇āĻŽāύāϟāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āĻŦāĻžāϰ ICQ āϤ⧇ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ, āĻŦāĻž āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ "āϞāĻ—āχāύ-āĻ•āĻŋ", āϝ⧇āĻŽāύ SSH-āĻ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ•āĻŋāϛ⧁ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ/āĻ—āĻŋāĻĨ⧁āĻŦ⧇)āĨ¤ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŦ⧇āύāĻžāĻŽā§€ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ. āϝāĻĻāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧇ "āĻāχ āĻĢā§‹āύ āύāĻŽā§āĻŦāϰāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϝ DC āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ"? āĻ…āĻĨāĻŦāĻž āĻāĻŽāύāĻ•āĻŋ "āφāĻĒāύāĻžāϰ āĻĢā§‹āύ āύāĻŽā§āĻŦāϰ āύāĻŋāώāĻŋāĻĻā§āϧ"? āφāĻŽāϰāĻž āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϤāĻž āĻšāϞ āϚāĻžāĻŦāĻŋāϟāĻŋ āĻāχ āφāĻļāĻžāϝāĻŧ āϰāĻžāĻ–āĻž āϝ⧇ āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϤāϤāĻ•ā§āώāϪ⧇ āĻĒāĻšā§‡ āϝāĻžāĻŦ⧇ āύāĻžāĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āφāĻŽāϰāĻž āĻāϟāĻŋ āϏāĻ‚āϰāĻ•ā§āώāϪ⧇āϰ āϏāĻžāĻĨ⧇ "āĻĒā§āϰāĻžāĻĒā§āϤ" āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āĻ•āĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāĻŋ? āĻāϟāĻž āϜāĻžāϞ āĻšāϞ⧇ āĻ•āĻŋ āĻšāĻŦ⧇? āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻšā§‡āĻ• āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [21.06.18/17/53 2:XNUMX] āϤāĻžāϰāĻž āĻŽā§‹āĻŦāĻžāχāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ XNUMXkbit āύāĻŽā§āĻŦāϰāϗ⧁āϞāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āϝāĻŧ %)

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻž āĻŽā§‹āĻŸā§‡āĻ“ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āύāϝāĻŧ, āύāĻžāĻĢ⧇āχāĻœā§‹āϝāĻŧāĻž

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [21.06.18/18/02 XNUMX:XNUMX] āϝāĻĻāĻŋ āĻāϟāĻŋ āϏāĻšāϜ āύāĻž āĻšāϝāĻŧ āϤāĻŦ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻĄāĻžāĻ•ā§āϤāĻžāϰ āĻŦāϞ⧇āύ āύāĻžāĨ¤

āĻŦāϞāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ āϚāϞ⧁āύ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ• āĻ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϕ⧀ āĻ•āϰ⧇āύ? āĻ• āϤāĻžāϤ⧇ āĻ•āĻŋ (āĻāĻŦāĻ‚ āĻšā§āϝāĻžāρ, āĻĒ⧁āϰ⧋ āĻĢāĻžāχāϞāϟāĻŋ āφāĻ•āĻ°ā§āώāĻŖā§€āϝāĻŧ) - āϝ⧇āĻŽāύ āϤāĻžāϰāĻž āĻŦāϞ⧇, āφāĻŽāĻŋ āĻāϟāĻŋ āĻāĻ–āĻžāύ⧇ āϰ⧇āϖ⧇ āĻĻ⧇āĻŦ:

278     static const char *goodPrime = "c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b";
279   if (!strcasecmp(prime, goodPrime)) {

āύāĻž, āĻ…āĻŦāĻļā§āϝāχ āĻāϟāĻž āĻāĻ–āύāĻ“ āφāϛ⧇ āĻ•āĻŋāϛ⧁ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāϰ⧀āĻ•ā§āώāĻž āφāϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāϰ āφāϰ āĻ—āĻŖāĻŋāϤ⧇āϰ āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ āĻœā§āĻžāĻžāύ āύ⧇āχāĨ¤

āĻ āĻŋāĻ• āφāϛ⧇, āφāĻŽāϰāĻž āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āϕ⧀ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāĨ¤ āϞāĻ— āχāύ āĻ•āϰāϤ⧇, i.e. āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāύ, āφāĻĒāύāĻžāϕ⧇ AES āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰāĻ“ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻŦāĻžāĻ°ā§āϤāĻž āϕ⧀āϟāĻŋāϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻŽā§‚āϞ āĻ…āĻ‚āĻļ⧇āϰ SHA128 āĻāϰ 256āϟāĻŋ āĻŽāĻ§ā§āϝāĻŽ āĻŦāĻŋāϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ (āϏ⧇āĻļāύ, āĻŦāĻžāĻ°ā§āϤāĻž āφāχāĻĄāĻŋ, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āϏāĻš), āĻĒā§āϝāĻžāĻĄāĻŋāĻ‚ āĻŦāĻžāχāϟ āϏāĻš, āĻ…āύ⧁āĻŽā§‹āĻĻāύ āϕ⧀ āĻĨ⧇āϕ⧇ āύ⧇āĻ“āϝāĻŧāĻž 32 āĻŦāĻžāχāϟ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻŋāĻĒ⧇āĻ¨ā§āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [22.06.18/14/08 XNUMX:XNUMX] āĻ—āĻĄāĻŧāĻĒāĻĄāĻŧāϤāĻž, āĻĻ⧁āĻļā§āϚāϰāĻŋāĻ¤ā§āϰāĻž, āĻŽāĻžāϰāϧāϰ

āĻ—ā§ƒāĻšā§€āϤ auth_key. āϏāĻŦ āϤāĻžāĻĻ⧇āϰ āĻŦāĻžāχāϰ⧇... āĻāϟāĻŋ āύāĻĨāĻŋ āĻĨ⧇āϕ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āύāϝāĻŧāĨ¤ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻ…āĻ§ā§āϝāϝāĻŧāύ āύāĻŋāĻ°ā§āĻĻā§āĻŦāĻŋāϧāĻžāϝāĻŧ.

āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ MTProto 2.0-āĻāϰ āϜāĻ¨ā§āϝ 12 āĻĨ⧇āϕ⧇ 1024 āĻŦāĻžāχāϟ āĻĒā§āϝāĻžāĻĄāĻŋāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻāĻ–āύāĻ“ āĻļāĻ°ā§āϤ āϏāĻžāĻĒ⧇āĻ•ā§āώ⧇ āϝ⧇ āĻĢāϞāĻžāĻĢāϞ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ 16 āĻŦāĻžāχāϟ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ­āĻžāĻœā§āϝ āĻšāĻŦ⧇āĨ¤

āϤāĻžāχ āφāĻĒāύāĻŋ āĻ•āϤ āĻĒā§āϝāĻžāĻĄāĻŋāĻ‚ āϝ⧋āĻ— āĻ•āϰāĻž āωāϚāĻŋāϤ?

āĻāĻŦāĻ‚ āĻšā§āϝāĻžāρ, āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻ•āϟāĻŋ 404 āφāϛ⧇

āϕ⧇āω āϝāĻĻāĻŋ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇āϰ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āĻāĻŦāĻ‚ āĻĒāĻžāĻ ā§āϝāϟāĻŋ āϏāĻžāĻŦāϧāĻžāύ⧇ āĻ…āĻ§ā§āϝāϝāĻŧāύ āĻ•āϰ⧇, āϤāĻžāϰāĻž āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧇āϛ⧇ āϝ⧇ āϏ⧇āĻ–āĻžāύ⧇ āϕ⧋āύāĻ“ MAC āύ⧇āχāĨ¤ āĻāĻŦāĻ‚ āϏ⧇āχ AES āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ IGE āĻŽā§‹āĻĄā§‡ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ āϝāĻž āĻ…āĻ¨ā§āϝ āϕ⧋āĻĨāĻžāĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āϤāĻžāϰāĻž, āĻ…āĻŦāĻļā§āϝāχ, āϤāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āϜāĻŋāĻœā§āĻžāĻžāϏāĻŋāϤ āĻĒā§āϰāĻļā§āύāĻĒāĻ¤ā§āϰ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϞ⧇āϖ⧇āύ... āĻāĻ–āĻžāύ⧇, āϝ⧇āĻŽāύ, āĻŦāĻžāĻ°ā§āϤāĻž āϕ⧀ āύāĻŋāĻœā§‡āχ āĻĄāĻŋāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻĄā§‡āϟāĻžāϰ SHA āĻšā§āϝāĻžāĻļ, āϝāĻž āĻ…āĻ–āĻŖā§āĻĄāϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ - āĻāĻŦāĻ‚ āĻ…āĻŽāĻŋāϞ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϕ⧋āύ⧋ āĻ•āĻžāϰāϪ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āύāĻŋāσāĻļāĻŦā§āĻĻ⧇ āϤāĻžāĻĻ⧇āϰ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āϝāĻŧ (āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋ, āϤāĻžāϰāĻž āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϭ⧇āϙ⧇ āĻĻ⧇āϝāĻŧ?)

āφāĻŽāĻŋ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻžāϰ āύāχ, āϏāĻŽā§āĻ­āĻŦāϤ āĻāĻ•āϟāĻŋ āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ• āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāχ āĻŽā§‹āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āĻ•āĻŋāϛ⧁ āϭ⧁āϞ āύ⧇āχāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āϏāĻŽāĻ¸ā§āϝāĻžāϰ āύāĻžāĻŽ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ•ā§āϝāĻžāĻļ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰ⧇ (āĻāχ āϏāĻŽāĻ¸ā§āϤ D877F783D5D3EF8C) MTProto-āĻāϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻŽāϤ⧋āχ (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ 1.0), āϝ⧇āĻŽāύ āĻĒā§āϰāĻĨāĻŽā§‡ āĻŽā§‡āϏ⧇āϜ āϕ⧀, āϤāĻžāϰāĻĒāϰ āĻĄāĻžāϟāĻž āύāĻŋāĻœā§‡āχ (āĻāĻŦāĻ‚ āϕ⧋āĻĨāĻžāĻ“ āĻĒā§āϰāϧāĻžāύ āĻŦāĻĄāĻŧ auth_key 256 āĻŦāĻžāχāϟ, āϝāĻž āĻ›āĻžāĻĄāĻŧāĻž msg_key āĻ…āϕ⧇āĻœā§‹)āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻŦāĻĄāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϤ⧇ āϞāĻ•ā§āώāĻŖā§€āϝāĻŧ āĻšāϝāĻŧ⧇ āĻ“āϠ⧇āĨ¤ āϝāĻĨāĻž, āφāĻĒāύāĻžāϕ⧇ āĻĄā§‡āϟāĻžāϰ āĻĻ⧁āϟāĻŋ āĻ•āĻĒāĻŋ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ - āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĄāĻŋāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻžāĨ¤ āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ, āĻŦāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĨāĻžāϕ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ?... āϏāĻžāχāĻĢāĻžāϰāĻŸā§‡āĻ•ā§āϏāϟ āĻĒāϰ⧇ MAC āϏāĻš āĻ•ā§āϞāĻžāϏāĻŋāĻ• āĻ¸ā§āĻ•āĻŋāĻŽāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒāĻĄāĻŧāϤ⧇ āĻĻ⧇āϝāĻŧ, āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻāϟāĻŋ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ MTProto āĻāϰ āϏāĻžāĻĨ⧇ āφāĻĒāύāĻžāϕ⧇ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦāĻž āĻĄāĻŋāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰ⧁āύ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻžāϰāĻĒāϰ āĻāϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŦāĻž āĻĄāĻŋāĻ¸ā§āϕ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧁āύāĨ¤ āϤāĻžāχ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ⧇āϰ āϏāĻ°ā§āĻŦāĻļ⧇āώ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻ•ā§āϝāĻžāĻļ⧇ āχāύ user_data CTR āĻŽā§‹āĻĄā§‡ AES āϏāĻš āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏāĻ“ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [⧍⧧.ā§Ļā§Ŧ.ā§§ā§Ž ā§Ļā§§:⧍⧭] āĻ“āĻš, āφāĻŽāĻŋ āϜāĻžāύāϤ⧇ āĻĒ⧇āϰ⧇āĻ›āĻŋ IGE āϕ⧀: IGE āĻ›āĻŋāϞ "āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻŽā§‹āĻĄ"-āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻšā§‡āĻˇā§āϟāĻž, āϝāĻž āĻŽā§‚āϞāϤ Kerberos-āĻāϰ āϜāĻ¨ā§āϝ āĻ›āĻŋāϞāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻĒā§āϰāĻšā§‡āĻˇā§āϟāĻž āĻ›āĻŋāϞ (āĻāϟāĻŋ āĻ…āĻ–āĻŖā§āĻĄāϤāĻž āϏ⧁āϰāĻ•ā§āώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āύāĻž), āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻāϟāĻŋ āĻ›āĻŋāϞ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻŽā§‹āĻĄā§‡āϰ āϜāĻ¨ā§āϝ ⧍ā§Ļ āĻŦāĻ›āϰ⧇āϰ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ⧇āϰ āĻļ⧁āϰ⧁, āϝāĻž āϏāĻŽā§āĻĒā§āϰāϤāĻŋ OCB āĻāĻŦāĻ‚ GCM-āĻāϰ āĻŽāϤ⧋ āĻŽā§‹āĻĄā§‡ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻāĻŦāĻ‚ āĻāĻ–āύ āĻ•āĻžāĻ°ā§āϟ āĻĒāĻžāĻļ āĻĨ⧇āϕ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ:

āύāĻŋāϕ⧋āϞāĻžāχ āĻĻ⧁āϰāϭ⧇āϰ āύ⧇āϤ⧃āĻ¤ā§āĻŦ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻĒāĻŋāĻ›āύ⧇āϰ āĻĻāϞāϟāĻŋāϤ⧇ āĻ›āϝāĻŧāϜāύ āĻāϏāĻŋāĻāĻŽ āĻšā§āϝāĻžāĻŽā§āĻĒāĻŋāϝāĻŧāύ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻžāĻĻ⧇āϰ āĻ…āĻ°ā§āϧ⧇āĻ• āĻ—āĻŖāĻŋāϤ⧇ āĻĒāĻŋāĻāχāϚāĻĄāĻŋāĨ¤ āĻāĻŽāϟāĻŋāĻĒā§āϰ⧋āĻŸā§‹āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āϤāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻžāϝāĻŧ āĻĻ⧁āχ āĻŦāĻ›āϰ āϏāĻŽāϝāĻŧ āϞ⧇āϗ⧇āϛ⧇āĨ¤

āĻāϟāĻž āĻŽāϜāĻžāϰ. āύāĻŋāĻŽā§āύ āĻ¸ā§āϤāϰ⧇ āĻĻ⧁āχ āĻŦāĻ›āϰ

āĻ…āĻĨāĻŦāĻž āφāĻĒāύāĻŋ āĻļ⧁āϧ⧁ tls āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ

āĻ āĻŋāĻ• āφāϛ⧇, āϧāϰāĻž āϝāĻžāĻ• āφāĻŽāϰāĻž āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϏ⧂āĻ•ā§āĻˇā§āĻŽāϤāĻž āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ TL āϤ⧇ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĒāĻžāĻ āĻžāύ⧋ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāϕ⧇ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āĻ•āĻŋ āĻ…āĻŦāĻļ⧇āώ⧇ āϏāĻŽā§āĻ­āĻŦ? āϤāĻžāχ āĻ•āĻŋ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻŋ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇? āĻāĻ–āĻžāύ⧇, āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āĻŦāϞāĻŋ initConnection, āϏāĻŽā§āĻ­āĻŦāϤ āĻāχ āĻāϟāĻž?

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [25.06.18 18:46] āϏāĻ‚āϝ⧋āĻ— āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇ āϤāĻĨā§āϝ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

āĻāϟāĻŋ app_id, device_model, system_version, app_version āĻāĻŦāĻ‚ lang_code āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤

āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻļā§āύ

āĻŦāϰāĻžāĻŦāϰ⧇āϰ āĻŽāϤ⧋ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāĨ¤ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻ…āĻ§ā§āϝāϝāĻŧāύ āύāĻŋāĻ°ā§āĻĻā§āĻŦāĻŋāϧāĻžāϝāĻŧ

invokeWithLayer āĻāϰ āϏāĻžāĻĨ⧇ āϝāĻĻāĻŋ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻžāϝāĻŧ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻāĻ–āĻžāύ⧇ āĻ•āĻŋ āϭ⧁āϞ? āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇, āϧāϰāĻž āϝāĻžāĻ• āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āφāϛ⧇ - āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰāĻžāϰ āĻ•āĻŋāϛ⧁ āĻ›āĻŋāϞ - āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āφāĻŽāϰāĻž āĻĒāĻžāĻ āĻžāϤ⧇ āĻšā§‡āϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [25.06.18/19/13 XNUMX:XNUMX] āϕ⧋āĻĄ āĻ…āύ⧁āϏāĻžāϰ⧇, āĻĒā§āϰāĻĨāĻŽ āĻ•āϞāϟāĻŋ āĻāχ āĻŦāĻžāĻœā§‡ āĻ•āĻĨāĻž āĻĻāĻŋāϝāĻŧ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ, āĻāĻŦāĻ‚ āĻŦāĻžāĻœā§‡ āĻ•āĻĨāĻžāϟāĻŋ āύāĻŋāĻœā§‡āχ invokewithlayer āĻĻāĻŋāϝāĻŧ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ

āϕ⧇āύ initConnection āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻ•āϞ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āĻŽā§‹āĻĄāĻŧāĻ• āĻšāϤ⧇ āĻšāĻŦ⧇? āĻšā§āϝāĻžāρ, āϝ⧇āĻŽāύāϟāĻŋ āĻĻ⧇āĻ–āĻž āϗ⧇āϛ⧇, āĻāϟāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏ⧇āĻļāύ⧇āϰ āĻļ⧁āϰ⧁āϤ⧇ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤ, āĻāĻŦāĻ‚ āĻāĻ•āĻŦāĻžāϰ āύāϝāĻŧ, āĻĒā§āϰāϧāĻžāύ āϕ⧀āϟāĻŋāϰ āĻŽāϤ⧋āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁! āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āύāύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āϞ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž! āĻāĻ–āύ āφāĻŽāϰāĻž āϏ⧇āχ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻĒ⧌āρāϛ⧇āĻ›āĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻāϟāĻŋ āĻĒā§āϰāϝ⧋āĻœā§āϝ āĻāχ āĻāĻ• āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒ⧃āĻˇā§āĻ āĻž - āĻāĻŦāĻ‚ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧇ āϝ⧇ ...

API āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ…āĻ‚āĻļ āĻ…āύāύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧ:

  • auth.sendCode
  • auth.resendCode
  • account.getPassword
  • auth.checkPassword
  • auth.checkPhone
  • auth.signUp
  • auth.signIn
  • auth.importAuthorization
  • help.getConfig
  • help.getNearestDc
  • help.getAppUpdate
  • help.getCdnConfig
  • langpack.getLangPack
  • langpack.getStrings
  • langpack.getDifference
  • langpack.getLanguages
  • langpack.getLanguage

āϤāĻžāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒā§āϰāĻĨāĻŽāϟāĻŋ, auth.sendCode, āĻāĻŦāĻ‚ āϏ⧇āχ āϞāĻžāϞāĻŋāϤ āĻĒā§āϰāĻĨāĻŽ āĻ…āύ⧁āϰ⧋āϧ⧇ āφāĻŽāϰāĻž api_id āĻāĻŦāĻ‚ api_hash āĻĒāĻžāĻ āĻžāχ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϕ⧋āĻĄ āϏāĻš āĻāĻ•āϟāĻŋ SMS āĻĒāĻžāχāĨ¤ āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϭ⧁āϞ āĻĄāĻŋāϏāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻŋ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāχ āĻĻ⧇āĻļ⧇ āĻŸā§‡āϞāĻŋāĻĢā§‹āύ āύāĻŽā§āĻŦāϰāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϝ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāĻŦ⧇āĻļāĻŋāϤ āĻšāϝāĻŧ), āϤāĻŦ⧇ āφāĻŽāϰāĻž āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻĄāĻŋāϏāĻŋāϰ āύāĻŽā§āĻŦāϰ āϏāĻš āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĒāĻžāĻŦāĨ¤ āĻĄāĻŋāϏāĻŋ āύāĻŽā§āĻŦāϰ āĻĻā§āĻŦāĻžāϰāĻž āϕ⧋āύ āφāχāĻĒāĻŋ āĻ āĻŋāĻ•āĻžāύāĻžāϝāĻŧ āφāĻĒāύāĻžāϕ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāϤ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧁āύ help.getConfig. āĻāĻ• āϏāĻŽāϝāĻŧ⧇ āĻŽāĻžāĻ¤ā§āϰ 5āϟāĻŋ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ 2018 āϏāĻžāϞ⧇āϰ āĻŦāĻŋāĻ–ā§āϝāĻžāϤ āχāϭ⧇āĻ¨ā§āϟāϗ⧁āϞāĻŋāϰ āĻĒāϰ⧇, āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒ⧇āϝāĻŧ⧇āϛ⧇āĨ¤

āĻāĻ–āύ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āφāĻŽāϰāĻž āĻŦ⧇āύāĻžāĻŽā§‡ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāχ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻāϏ⧇āĻ›āĻŋāĨ¤ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āφāχāĻĒāĻŋ āĻ āĻŋāĻ•āĻžāύāĻž āĻĒ⧇āϤ⧇ āĻāϟāĻŋ āϖ⧁āĻŦ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āύāϝāĻŧ? āĻāĻŽāϟāĻŋāĻĒā§āϰ⧋āĻŸā§‹āϰ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻ…āĻ‚āĻļ⧇ āϕ⧇āύ āĻāϟāĻŋ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϞāĻžāĻĒāϗ⧁āϞāĻŋ āĻ•āϰāĻŦ⧇āύ āύāĻž? āφāĻŽāĻŋ āφāĻĒāĻ¤ā§āϤāĻŋ āĻļ⧁āύāĻ›āĻŋ: "āφāĻŽāϰāĻž āϕ⧀āĻ­āĻžāĻŦ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻŦ āϝ⧇ āĻāϟāĻŋ āφāϰāϕ⧇āĻāύ āύāϝāĻŧ āϝ⧇ āĻŽāĻŋāĻĨā§āϝāĻž āĻ āĻŋāĻ•āĻžāύāĻž āĻĻāĻŋāϝāĻŧ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāĻŦ⧇?" āĻāχ āφāĻŽāϰāĻž āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇, āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ RSA āϕ⧀ āĻāĻŽāĻŦ⧇āĻĄ āĻ•āϰāĻž āφāϛ⧇, āĻ…āĻ°ā§āĻĨāĻžā§Ž āϤ⧁āĻŽāĻŋ āĻ•āĻŋ āĻļ⧁āϧ⧁ āϚāĻŋāĻšā§āύ āĻāχ āϤāĻĨā§āϝ. āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇, āĻāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻŦāĻžāχāĻĒāĻžāϏ āĻŦā§āϞāĻ•āĻŋāĻ‚ āϏāĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āϝāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻšā§āϝāĻžāύ⧇āϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ (āϝ⧌āĻ•ā§āϤāĻŋāĻ•āĻ­āĻžāĻŦ⧇, āĻāϟāĻŋ āĻāĻŽāϟāĻŋāĻĒā§āϰ⧋āĻŸā§‹āϤ⧇ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āύāĻž; āφāĻĒāύāĻžāϕ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻžāĻ“ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇)āĨ¤

āĻ āĻŋāĻ• āφāϛ⧇. āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ…āύ⧁āĻŽā§‹āĻĻāύ⧇āϰ āĻāχ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇, āφāĻŽāϰāĻž āĻāĻ–āύāĻ“ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āύāχ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āφāĻŦ⧇āĻĻāύ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰāĻŋāύāĻŋāĨ¤ āφāĻŽāϰāĻž āĻāĻ–āύ āĻĻ⧇āĻ–āϤ⧇ āϚāĻžāχ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻ…āύāύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ•āĻžāϛ⧇ āωāĻĒāϞāĻŦā§āϧ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āϕ⧀ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϝāĻŧ⧎ āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇â€Ļ

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [10.07.18 14:45] https://core.telegram.org/method/help.getConfig

config#7dae33e0 [...] = Config;
help.getConfig#c4f9186b = Config;

https://core.telegram.org/api/datacenter

config#232d5905 [...] = Config;
help.getConfig#c4f9186b = Config;

āĻ¸ā§āĻ•āĻŋāĻŽā§‡, āĻĒā§āϰāĻĨāĻŽ āφāϏ⧇ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ

tdesktop āĻ¸ā§āĻ•āĻŋāĻŽāĻžāϝāĻŧ āϤ⧃āϤ⧀āϝāĻŧ āĻŽāĻžāύ āĻšāϞ

āĻšā§āϝāĻžāρ, āϤāĻžāϰāĻĒāϰ āĻĨ⧇āϕ⧇, āĻ…āĻŦāĻļā§āϝāχ, āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ āĻ…āϚāĻŋāϰ⧇āχ āφāĻŦāĻžāϰ āĻ…āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻšāϝāĻŧ⧇ āωāĻ āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āϜāύ āύāĻŦā§€āύ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āϕ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϜāĻžāύāĻž āωāϚāĻŋāϤ? āĻšāϝāĻŧāϤ⧋ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āφāĻŦ⧇āĻĻāύ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰ⧇āύ, āϤāĻžāϰāĻž āφāĻĒāύāĻžāϕ⧇ āϜāĻžāύāĻžāĻŦ⧇? āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ āĻāϟāĻŋ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ, āϤāĻŦ⧇ āĻšāĻžāϝāĻŧ, āϤāĻžāϰāĻž āϤāĻžāϕ⧇ āĻ•āĻŋāϛ⧁ āĻĒāĻžāĻ āĻžāϝāĻŧāύāĻŋ (āφāĻŦāĻžāϰ, āφāĻŽāϰāĻž āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŦ)āĨ¤

...āφāĻĒāύāĻŋ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧇āϛ⧇āύ āϝ⧇ āφāĻŽāϰāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻāĻ•āϰāĻ•āĻŽ API-āĻ āϚāϞ⧇ āĻāϏ⧇āĻ›āĻŋ, āϝ⧇āĻŽāύ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ¸ā§āϤāϰ⧇, āĻāĻŦāĻ‚ MTProto āĻŦāĻŋāώāϝāĻŧ⧇ āĻ•āĻŋāϛ⧁ āĻŽāĻŋāϏ āĻ•āϰ⧇āϛ⧇āύ? āφāĻ•āĻ°ā§āώāĻŖ āύ⧇āχ:

āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ, [28.06.18/02/04 2:XNUMX] āĻšā§āĻŽ, āϤāĻžāϰāĻž eXNUMXe āϤ⧇ āĻ•āĻŋāϛ⧁ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāϛ⧇āĨ¤

Mtproto āωāĻ­āϝāĻŧ āĻĄā§‹āĻŽā§‡āύ⧇āϰ āϜāĻ¨ā§āϝ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻāĻŦāĻ‚ āϕ⧀ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰ⧇, āϏ⧇āχāϏāĻžāĻĨ⧇ āĻ•āĻŋāϛ⧁āϟāĻž āĻŽā§‹āĻĄāĻŧāĻ• āĻ—āĻ āύ

āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϰāĻž āĻ•ā§āϰāĻŽāĻžāĻ—āϤ āĻ¸ā§āĻŸā§āϝāĻžāϕ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āϤāϰ āĻŽāĻŋāĻļā§āϰāĻŋāϤ āĻ•āϰ⧇, āϤāĻžāχ mtproto āϕ⧋āĻĨāĻžāϝāĻŧ āĻļ⧇āώ āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ¸ā§āϤāϰ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ⧇āϛ⧇ āϤāĻž āϏāĻ°ā§āĻŦāĻĻāĻž āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āύāϝāĻŧ

āϤāĻžāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻŽāĻŋāĻļā§āϰāĻŋāϤ? āĻ āĻŋāĻ• āφāϛ⧇, āĻāĻ–āĻžāύ⧇ PFS-āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϕ⧀ āϰāϝāĻŧ⧇āϛ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ (āĻĒā§āϰāϏāĻ™ā§āĻ—āĻ•ā§āϰāĻŽā§‡, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āĻāϟāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž)āĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ API āĻ…āύ⧁āϰ⧋āϧ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āϰāĻž āĻšāϝāĻŧ auth.bindTempAuthKey, āĻ…āĻ°ā§āĻĨāĻžā§Ž āωāĻĒāϰ⧇āϰ āĻ¸ā§āϤāϰ āĻĨ⧇āϕ⧇āĨ¤ āϤāĻŦ⧇ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻāϟāĻŋ āύāĻŋāĻŽā§āύ āĻ¸ā§āϤāϰ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ⧇ āĻšāĻ¸ā§āϤāĻ•ā§āώ⧇āĻĒ āĻ•āϰ⧇ - āĻāϰ āĻĒāϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āφāĻŦāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ initConnection āχāĻ¤ā§āϝāĻžāĻĻāĻŋ, āĻāϟāĻž āύāĻž āĻŽāĻžāĻ¤ā§āϰ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ…āύ⧁āϰ⧋āϧāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻŦāĻŋāĻļ⧇āώāĻ¤ā§āĻŦ āĻšāϞ āϝ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻĒā§āϰāϤāĻŋ āĻĄāĻŋāϏāĻŋāϤ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϕ⧀ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻĻāĻŋāĻ“ āĻ•ā§āώ⧇āĻ¤ā§āϰāϟāĻŋ auth_key_id āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϝāĻŧ āφāĻĒāύāĻžāϕ⧇ āĻ…āĻ¨ā§āϤāϤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āϕ⧀ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϝ⧇ āϕ⧋āύ⧋ āϏāĻŽāϝāĻŧ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϕ⧀āϟāĻŋ "āϭ⧁āϞ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ" āĻ…āϧāĻŋāĻ•āĻžāϰ āϰāϝāĻŧ⧇āϛ⧇ - āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻŦāϞ⧇ āύāĻž... āφāĻšā§āĻ›āĻž, āϕ⧇āύ āĻĒāĻžāϰ⧇ āύāĻž āĻ­āĻŦāĻŋāĻˇā§āϝāϤ āϞāĻŦāϪ⧇āϰ āϏ⧇āĻŸā§‡āϰ āĻŽāϤ⧋ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āϕ⧀ āύ⧇āχ, āĻāĻŦāĻ‚? ..

MTProto āĻĨāĻŋāĻŽ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϞāĻ•ā§āώāĻŖā§€āϝāĻŧ āφāϰāĻ“ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āĻŦāĻžāĻ°ā§āϤāĻž āĻŦāĻžāĻ°ā§āϤāĻž, msg_id, msg_seqno, āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ, āϭ⧁āϞ āĻĻāĻŋāϕ⧇ āĻĒāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŦ⧈āϚāĻŋāĻ¤ā§āĻ°ā§āϝ

āϕ⧇āύ āφāĻĒāύāĻŋ āϤāĻžāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇? āĻ•āĻžāϰāĻŖ āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āωāĻšā§āϚ āĻ¸ā§āϤāϰ⧇ "āϞāĻŋāĻ•" āĻ•āϰ⧇ āĻāĻŦāĻ‚ API āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āφāĻĒāύāĻžāϕ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻšā§‡āϤāύ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϧāϰāĻž āϝāĻžāĻ• āφāĻŽāϰāĻž msg_key āϤ⧇ āφāĻ—ā§āϰāĻšā§€ āύāχ; āύāĻŋāĻŽā§āύ āĻ¸ā§āϤāϰ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĄāĻŋāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĄāĻŋāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻĄā§‡āϟāĻžāϰ āĻ­āĻŋāϤāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•ā§āώ⧇āĻ¤ā§āϰāϗ⧁āϞāĻŋ āϰāϝāĻŧ⧇āϛ⧇ (āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĄā§‡āϟāĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ, āϤāĻžāχ āφāĻŽāϰāĻž āϜāĻžāύāĻŋ āĻĒā§āϝāĻžāĻĄāĻŋāĻ‚āϟāĻŋ āϕ⧋āĻĨāĻžāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āύāϝāĻŧ):

  • āϞāĻŦāĻŖ - int64
  • session_id - int64
  • message_id — int64
  • seq_no - int32

āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāύ⧇ āĻ•āϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ• āϝ⧇ āĻĒ⧁āϰ⧋ āĻĄāĻŋāϏāĻŋāϰ āϜāĻ¨ā§āϝ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āϞāĻŦāĻŖ āφāϛ⧇āĨ¤ āϕ⧇āύ āϜāĻžāύāĻŋ āϤāĻžāϰ āĻ•āĻĨāĻž? āĻļ⧁āϧ⧁ āĻ…āύ⧁āϰ⧋āϧ āφāϛ⧇ āĻŦāϞ⧇ āύāϝāĻŧ get_future_salts, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻŦāϞ⧇ āϝ⧇ āϕ⧋āύ āĻŦāĻŋāϰāϤāĻŋāϗ⧁āϞāĻŋ āĻŦ⧈āϧ āĻšāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ•āĻžāϰāĻŖ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āϞāĻŦāĻŖ "āĻĒāϚāĻž" āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ (āĻ…āύ⧁āϰ⧋āϧ) āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ, āĻ…āĻŦāĻļā§āϝāχ, āχāĻ¸ā§āϝ⧁ āĻ•āϰ⧇ āύāϤ⧁āύ āϞāĻŦāĻŖ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻŦ⧇ new_session_created - āϤāĻŦ⧇ āĻĒ⧁āϰāĻžāύ⧋āϟāĻŋāϰ āϏāĻžāĻĨ⧇ āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āϕ⧋āύāĻ“āĻ­āĻžāĻŦ⧇ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒāĨ¤ āĻāĻŦāĻ‚ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϕ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇āĨ¤

āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋāϕ⧇ āϏ⧇āĻļāύāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦ⧇ āĻĄā§āϰāĻĒ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻ…āύ⧇āĻ• āĻ•āĻžāϰāϪ⧇ āĻāχāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āφāϏāϞ⧇, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāĻ•ā§āώ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ MTProto āϏ⧇āĻļāύ āĻ•āĻŋ? āĻāχ āĻĻ⧁āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž session_id и seq_no āĻāχ āĻ…āϧāĻŋāĻŦ⧇āĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻžāĻ°ā§āϤāĻž. āĻ­āĻžāϞ, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ TCP āϏāĻ‚āϝ⧋āĻ—, āĻ…āĻŦāĻļā§āϝāχāĨ¤ āϧāϰāĻž āϝāĻžāĻ• āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ–āύāĻ“ āϜāĻžāύ⧇ āύāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ, āϏ⧇ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ•āϰ⧇ āφāĻŦāĻžāϰ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰ⧇āϛ⧇āĨ¤ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻĻā§āϰ⧁āϤ āϘāĻŸā§‡ āĻĨāĻžāϕ⧇ - āύāϤ⧁āύ āϟāĻŋāϏāĻŋāĻĒāĻŋ āϏāĻ‚āϝ⧋āϗ⧇ āĻĒ⧁āϰāĻžāύ⧋ āϏ⧇āĻļāύ āĻ…āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāϕ⧇, āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰ⧁āύ seq_no āφāϰāĻ“ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ āύ⧇āϝāĻŧ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻžāϰāĻŖ āĻāϟāĻŋāϰ āĻĒāĻžāĻļ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻžāϰāĻŋ, āϝ⧇āĻŽāύ āφāĻŽāϰāĻž āϖ⧁āρāĻœā§‡ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāĨ¤

āĻāϟāĻž āĻ•āĻŋ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ seq_no? āĻ“āĻš, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϚāϤ⧁āϰ āĻĒā§āϰāĻļā§āύ. āĻ•āĻŋ āĻŦā§‹āĻāĻžāύ⧋ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϤāĻž āĻ¸ā§ŽāĻ­āĻžāĻŦ⧇ āĻŦā§‹āĻāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧁āύ:

āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻž

āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āϝāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ⧎ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻāĻŦāĻ‚ āĻ…āύ⧇āĻ• āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻž āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇, āĻ•āĻžāĻ°ā§āϝāϤ āϏāĻŽāĻ¸ā§āϤ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ āĻŦā§āϝāϤ⧀āϤāĨ¤

āĻŦāĻžāĻ°ā§āϤāĻž āĻ•ā§āϰāĻŽ āύāĻŽā§āĻŦāϰ (msg_seqno)

āĻāĻ•āϟāĻŋ 32-āĻŦāĻŋāϟ āϏāĻ‚āĻ–ā§āϝāĻž "āϏāĻžāĻŽāĻ—ā§āϰ⧀-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ" āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻĻā§āĻŦāĻŋāϗ⧁āĻŖ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āϏāĻŽāĻžāύ (āϝāĻžāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻāĻŦāĻ‚ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϝ⧇āϗ⧁āϞāĻŋ āϧāĻžāϰāĻ• āύāϝāĻŧ) āĻāχ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āφāϗ⧇ āĻĒā§āϰ⧇āϰāĻ• āĻĻā§āĻŦāĻžāϰāĻž āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻāĻ•āϟāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻĻāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻšāϝāĻŧ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻžāĨ¤ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻ• āϏāĻ°ā§āĻŦāĻĻāĻž āϤāĻžāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āϰ āĻĒāϰ⧇ āωāĻ¤ā§āĻĒāĻ¨ā§āύ āĻšāϝāĻŧ; āϏ⧁āϤāϰāĻžāĻ‚, āĻāϰ āĻ•ā§āϰāĻŽ āϏāĻ‚āĻ–ā§āϝāĻž āĻāϟāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻ•ā§āϰāĻŽ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ āĻŦāĻž āϏāĻŽāĻžāύāĨ¤

āĻāϟāĻŋ 1 āĻĻā§āĻŦāĻžāϰāĻž āĻŦ⧃āĻĻā§āϧāĻŋāϰ āϏāĻžāĻĨ⧇ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ 2 āĻĻā§āĻŦāĻžāϰāĻž āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ•āĻžāϏ?... āφāĻŽāĻŋ āϏāĻ¨ā§āĻĻ⧇āĻš āĻ•āϰāĻŋ āϝ⧇ āϤāĻžāϰāĻž āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ "ACK-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻ°ā§āĻŦāύāĻŋāĻŽā§āύ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻŦāĻŋāϟ, āĻŦāĻžāĻ•āĻŋāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž" āĻŦā§‹āĻāĻžāϤ⧇ āĻšā§‡āϝāĻŧ⧇āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĢāϞāĻžāĻĢāϞāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻāĻ•āχ āύāϝāĻŧ - āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇, āĻāϟāĻŋ āĻŦ⧇āϰāĻŋāϝāĻŧ⧇ āφāϏ⧇, āĻĒāĻžāĻ āĻžāύ⧋ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āĻāĻ•āχ āĻĨāĻžāĻ•āĻžāϰ seq_no! āĻ•āĻŋāĻ­āĻžāĻŦ⧇? āĻ āĻŋāĻ• āφāϛ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋāϛ⧁ āĻĒāĻžāĻ āĻžāϝāĻŧ, āĻāϟāĻŋ āĻĒāĻžāĻ āĻžāϝāĻŧ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āϰāĻžāχ āύ⧀āϰāĻŦ āĻĨāĻžāĻ•āĻŋ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϤāĻžāϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻĒā§āϰāĻžāĻĒā§āϤāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻšāĻŋāĻ°ā§āĻ—āĻžāĻŽā§€ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āĻāĻ•āχ āĻŦāĻšāĻŋāĻ°ā§āĻ—āĻžāĻŽā§€ āύāĻŽā§āĻŦāϰ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ TCP āĻāϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāύ āĻāĻŦāĻ‚ āĻŽāύ⧇ āĻ•āϰ⧇āύ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϰāĻ•āĻŽ āĻŦāĻ¨ā§āϝ āĻļā§‹āύāĻžāĻšā§āϛ⧇, āϤāĻŦ⧇ āĻāϟāĻŋ āϖ⧁āĻŦ āĻŦāĻ¨ā§āϝ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āύāĻž, āĻ•āĻžāϰāĻŖ TCP-āϤ⧇ seq_no āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϝāĻŧ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āϝāĻžāϝāĻŧ seq_no āĻ…āĻ¨ā§āϝ āĻĻāĻŋāϕ⧇, āφāĻŽāĻŋ āϤ⧋āĻŽāĻžāϕ⧇ āĻŦāĻŋāϰāĻ•ā§āϤ āĻ•āϰāϤ⧇ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ āĻ•āϰāĻŦāĨ¤ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ MTProto āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž āĻ seq_no, TCP āĻāϰ āĻŽāϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĻā§āĻŦāĻžāϰāĻž msg_id !

āĻāϟāĻž āĻ•āĻŋ msg_id, āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ? āĻāĻ•āϟāĻŋ āĻ…āύāĻ¨ā§āϝ āĻŦāĻžāĻ°ā§āϤāĻž āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀, āϝ⧇āĻŽāύ āύāĻžāĻŽ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ 64-āĻŦāĻŋāϟ āϏāĻ‚āĻ–ā§āϝāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āϏāĻ°ā§āĻŦāύāĻŋāĻŽā§āύ āĻŦāĻŋāϟāϗ⧁āϞāĻŋāϤ⧇ āφāĻŦāĻžāϰ "āϏāĻžāĻ°ā§āĻ­āĻžāϰ-āύāϟ-āϏāĻžāĻ°ā§āĻ­āĻžāϰ" āĻŽā§āϝāĻžāϜāĻŋāĻ• āϰāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻŦāĻžāĻ•āĻŋāϟāĻŋ āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻ•ā§āϏ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ, āĻ­āĻ—ā§āύāĻžāĻ‚āĻļ āϏāĻš, 32 āĻŦāĻŋāϟ āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇⧎ āϏ⧇āϗ⧁āϞ⧋. āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻĒā§āϰāϤāĻŋ āϏ⧇ (āĻāĻŦāĻ‚ āϏāĻŽāϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āĻ­āĻŋāĻ¨ā§āύāϤāĻžāϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰāĻž āĻšāĻŦ⧇)āĨ¤ āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇ āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āϝāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€āĨ¤ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇ - āφāϏ⧁āύ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ session_id - āφāĻŽāϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ: āϕ⧋āύ⧋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϤ⧇āχ āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻ…āĻ¨ā§āϝ āϏ⧇āĻļāύ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āϝāĻžāĻŦ⧇ āύāĻž. āϝ⧇, āĻāϟāĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϝ⧇ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āφāϛ⧇ āϤāĻŋāύ āĻ¸ā§āϤāϰ - āĻ…āϧāĻŋāĻŦ⧇āĻļāύ, āĻ…āϧāĻŋāĻŦ⧇āĻļāύ āύāĻŽā§āĻŦāϰ, āĻŦāĻžāĻ°ā§āϤāĻž āφāχāĻĄāĻŋāĨ¤ āϕ⧇āύ āĻāϤ āϜāϟāĻŋāϞāϤāĻž, āĻāχ āϰāĻšāĻ¸ā§āϝāϟāĻž āϖ⧁āĻŦ āĻŦāĻĄāĻŧāĨ¤

āĻāĻŦāĻ‚ āϤāĻžāχ, msg_id āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ...

RPC: āĻ…āύ⧁āϰ⧋āϧ, āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž, āĻ¤ā§āϰ⧁āϟāĻŋāĨ¤ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ

āφāĻĒāύāĻŋ āĻšāϝāĻŧāϤ⧋ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧇āϛ⧇āύ, āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽā§‡ āϕ⧋āĻĨāĻžāĻ“ āϕ⧋āύ⧋ āĻŦāĻŋāĻļ⧇āώ "āĻāĻ•āϟāĻŋ RPC āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧁āύ" āϟāĻžāχāĻĒ āĻŦāĻž āĻĢāĻžāĻ‚āĻļāύ āύ⧇āχ, āϝāĻĻāĻŋāĻ“ āωāĻ¤ā§āϤāϰ āφāϛ⧇āĨ¤ āϏāĻŦ āĻĒāϰ⧇, āφāĻŽāϰāĻž āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻž āφāϛ⧇! āĻāϟāĻžāχ, āϕ⧋āύ āĻŦāĻžāĻ°ā§āϤāĻž āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻšāϤ⧇ āĻĒāĻžāϰ⧇! āĻŦāĻž āĻšāϤ⧇ āĻšāĻŦ⧇ āύāĻž. āϏāĻ°ā§āĻŦā§‹āĻĒāϰāĻŋ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻšāϞ msg_id. āĻ•āĻŋāĻ¨ā§āϤ⧁ āωāĻ¤ā§āϤāϰ āφāϛ⧇:

rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;

āĻāϟāĻŋ āĻāĻ–āĻžāύ⧇āχ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻšāϝāĻŧ āϝ⧇ āĻāϟāĻŋ āϕ⧋āύ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋāϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĨ¤ āĻ…āϤāĻāĻŦ, API-āĻāϰ āĻļā§€āĻ°ā§āώ āĻ¸ā§āϤāϰ⧇, āφāĻĒāύāĻžāϕ⧇ āφāĻĒāύāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ - āφāĻŽāĻŋ āĻŽāύ⧇ āĻ•āϰāĻŋ āϝ⧇ āĻ•āĻžāϜāϟāĻŋ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāϏ āϤāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻžāϰ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχ āĻāĻŦāĻ‚ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻĒā§āϰāĻ—āϤāĻŋāĻļā§€āϞ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϰ āωāĻ¤ā§āϤāϰ āϕ⧋āύ āĻ•ā§āϰāĻŽā§‡ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ? āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āĻāĻŦāĻ‚ āϕ⧋āύāĻ“ āĻ•āĻ°ā§āĻŽā§€ āύāϝāĻŧ āĻāĻŽāύ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻĨ⧇āϕ⧇, āĻāϰ āĻĒāĻŋāĻ›āύ⧇āϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϟāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇: āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āφāĻĒāύāĻžāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ TCP āϏāĻ‚āϝ⧋āĻ— āĻŦāϜāĻžāϝāĻŧ āϰāĻžāϖ⧇ āϏ⧇āϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢā§āϰāĻ¨ā§āϟ-āĻāĻ¨ā§āĻĄ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ, āĻāϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĢāϰ⧋āϝāĻŧāĻžāĻ°ā§āĻĄ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇āĨ¤ message_id. āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ, āϝ⧌āĻ•ā§āϤāĻŋāĻ• āĻāĻŦāĻ‚ āĻ­āĻžāϞāĨ¤

āĻšā§āϝāĻžāρ?.. āφāϰ āϝāĻĻāĻŋ āĻ­āĻžāĻŦā§‹? āϏāĻŦ āĻĒāϰ⧇, RPC āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāĻœā§‡āχ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ āφāϛ⧇ msg_id! āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāĻž āĻĻāϰāĻ•āĻžāϰ "āφāĻĒāύāĻŋ āφāĻŽāĻžāϰ āωāĻ¤ā§āϤāϰ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāĻšā§āϛ⧇āύ āύāĻž!"? āĻāĻŦāĻ‚ āĻšā§āϝāĻžāρ, āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋ āĻ›āĻŋāϞ? āĻĒ⧃āĻˇā§āĻ āĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧇āύ āĻ•āĻŋ

msgs_ack#62d6b459 msg_ids:Vector long = MsgsAck;

āĻāĻŦāĻ‚ āĻāϟāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻ•ā§āώ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•. āϤāĻŦ⧇ āϏāĻŦ āϏāĻŽāϝāĻŧ āύāϝāĻŧ! āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ RpcResult āĻĒ⧇āϝāĻŧ⧇ āĻĨāĻžāϕ⧇āύ āϤāĻŦ⧇ āĻāϟāĻŋ āύāĻŋāĻœā§‡āχ āĻāĻ•āϟāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϏāĻžāĻ°ā§āĻ­āĻžāϰ MsgsAck-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻĒāύāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϜāĻŦāĻžāĻŦ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ - āϝ⧇āĻŽāύ, "āφāĻŽāĻŋ āĻāϟāĻŋ āĻĒ⧇āϝāĻŧ⧇āĻ›āĻŋāĨ¤" RpcResult āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻž āωāĻ­āϝāĻŧ āĻšāϤ⧇ āĻĒāĻžāϰ⧇.

āĻāĻŦāĻ‚ āĻšā§āϝāĻžāρ, āφāĻĒāύāĻŋ āĻāĻ–āύāĻ“ āωāĻ¤ā§āϤāϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇! āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖāĨ¤ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϟāĻŋāϕ⧇ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰ āĻ•āϰāĻžāϰ āĻ…āϝ⧋āĻ—ā§āϝ āĻŦāϞ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āφāĻŦāĻžāϰ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻĒāĻžāĻ āĻžāĻŦ⧇āĨ¤ āĻĒ⧁āύāσāϏāĻ‚āϝ⧋āϗ⧇āϰ āĻĒāϰ⧇āĻ“āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇, āĻ…āĻŦāĻļā§āϝāχ, āϏāĻŽāϝāĻŧāϏ⧀āĻŽāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧāĨ¤ āϚāϞ⧁āύ āĻāĻ•āϟ⧁ āĻĒāϰ⧇ āϏ⧇āϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻŋāĨ¤

āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇, āφāϏ⧁āύ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

āĻ“āĻš, āϕ⧇āω āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāĻŦ⧇, āĻāĻ–āĻžāύ⧇ āφāϰāĻ“ āĻŽāĻžāύāĻŦāĻŋāĻ• āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ - āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āφāϛ⧇! āφāĻĒāύāĻžāϰ āϏāĻŽāϝāĻŧ āύāĻŋāύ. āĻāĻ–āĻžāύ⧇ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻŦāĻļā§āϝāχ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āφāĻŽāϰāĻž āĻļāĻŋāϖ⧇āĻ›āĻŋ āϝ⧇ āϕ⧋āĻĄāϟāĻŋ āĻ•āĻŋāϛ⧁āϟāĻž āĻāχāϰāĻ•āĻŽ HTTP āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞāĻŋ (āĻ­āĻžāϞ, āĻ…āĻŦāĻļā§āϝāχ, āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāϰ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāϕ⧇ āϏāĻŽā§āĻŽāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āĻ•āĻŋāϛ⧁ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻāϗ⧁āϞāĻŋ āϕ⧋āĻĄāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāϞ⧋āĻŽā§‡āϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ), āĻāĻŦāĻ‚ āϞāĻžāχāύāϟāĻŋ āĻāĻŽāύ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇ CAPITAL_LETTERS_AND_NUMBERS. āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, PHONE_NUMBER_OCCUPIED āĻŦāĻž FILE_PART_ĐĨ_MISSING⧎ āĻ“āϝāĻŧ⧇āϞ, āϝ⧇, āφāĻĒāύāĻŋ āĻāĻ–āύāĻ“ āĻāχ āϞāĻžāχāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āĻĒāĻžāĻ°ā§āϏāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ FLOOD_WAIT_3600 āφāĻĒāύāĻŋ āĻāĻ• āϘāĻ¨ā§āϟāĻž āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻŽāĻžāύ⧇, āĻāĻŦāĻ‚ PHONE_MIGRATE_5, āĻāχ āωāĻĒāϏāĻ°ā§āĻ— āϏāĻš āĻāĻ•āϟāĻŋ āĻŸā§‡āϞāĻŋāĻĢā§‹āύ āύāĻŽā§āĻŦāϰ āĻ…āĻŦāĻļā§āϝāχ 5 āϤāĻŽ āĻĄāĻŋāϏāĻŋāϤ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāĻŋāϤ āĻšāϤ⧇ āĻšāĻŦ⧇⧎ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϟāĻžāχāĻĒ āĻ­āĻžāώāĻž āφāϛ⧇, āϤāĻžāχ āύāĻž? āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āϝ⧁āĻ•ā§āϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϤāĻžāϰāĻž āĻ•āϰāĻŦ⧇, āĻ āĻŋāĻ• āφāϛ⧇āĨ¤

āφāĻŦāĻžāϰ, āĻāϟāĻŋ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻž āĻĒ⧃āĻˇā§āĻ āĻžāϝāĻŧ āύāϝāĻŧ, āϤāĻŦ⧇, āĻāχ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻšāĻŋāϏāĻžāĻŦ⧇, āϤāĻĨā§āϝ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āĻ¨ā§āϝ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻĒ⧃āĻˇā§āĻ āĻžāϝāĻŧāĨ¤ āĻ…āĻĨāĻŦāĻž āϏāĻ¨ā§āĻĻ⧇āĻš āĻ•āϰāĻž. āĻĒā§āϰāĻĨāĻŽāϤ, āĻĻ⧇āϖ⧁āύ, āϟāĻžāχāĻĒāĻŋāĻ‚/āϞ⧇āϝāĻŧāĻžāϰ āϞāĻ™ā§āϘāύ - RpcError āĻŽāĻ§ā§āϝ⧇ āύ⧇āĻ¸ā§āϟ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ RpcResult. āĻŦāĻžāχāϰ⧇ āύāϝāĻŧ āϕ⧇āύ? āφāĻŽāϰāĻž āϕ⧀ āφāĻŽāϞ⧇ āύāĻŋāϞāĻžāĻŽ āύāĻž?... āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€, āϏ⧇āχ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āϕ⧋āĻĨāĻžāϝāĻŧ? RpcError āĻāĻŽā§āĻŦ⧇āĻĄ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž RpcResult, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāϰāĻžāϏāϰāĻŋ āĻŦāĻž āĻ…āĻ¨ā§āϝ āϧāϰāύ⧇āϰ āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻšāϤ⧇ āĻšāĻŦ⧇?.. āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āĻāϟāĻŋ āύāĻž āĻĒāĻžāϰ⧇, āϕ⧇āύ āĻāϟāĻŋ āĻļā§€āĻ°ā§āώ āĻ¸ā§āϤāϰ⧇ āύāϝāĻŧ, āϝ⧇āĻŽāύ āĻāϟāĻž āύāĻžāχ req_msg_id ? ..

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻŦāĻŋāϰāϤ āĻ•āϰāĻž āϝāĻžāĻ•. āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻŽāύ⧇ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϛ⧇ āĻāĻŦāĻ‚ āĻāχ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ āĻ…āύ⧁āϰ⧋āϧāϟāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;

āĻāχ āĻĒā§āϰāĻļā§āύ⧇āϰ āϤāĻŋāύāϟāĻŋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āωāĻ¤ā§āϤāϰ āϰāϝāĻŧ⧇āϛ⧇, āφāĻŦāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻžāĻĨ⧇ āϛ⧇āĻĻ āĻ•āϰ⧇ āϏ⧇āϗ⧁āϞāĻŋ āϕ⧀ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āϤāĻž āĻŦā§‹āĻāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž (āĻāĻŦāĻ‚ āϕ⧀ āϧāϰāϪ⧇āϰ āϏāĻžāϧāĻžāϰāĻŖ āϤāĻžāϞāĻŋāĻ•āĻž āϝāĻž āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāϪ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ) āĻĒāĻžāĻ āϕ⧇āϰ āĻ•āĻžāϛ⧇ āĻšā§‹āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇ (āĻĻā§āϰāĻˇā§āϟāĻŦā§āϝ: āϤāĻĨā§āϝ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāϝāĻŧ)āĨ¤

āĻŽāĻžāĻĻāĻ•āĻžāϏāĻ•ā§āϤāĻŋ: āĻŦāĻžāĻ°ā§āϤāĻž āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ

āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āϟāĻŋāĻāϞ, āĻāĻŽāϟāĻŋāĻĒā§āϰ⧋āĻŸā§‹ āĻāĻŦāĻ‚ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻ…āύ⧇āĻ• āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇ āĻāĻ•āϗ⧁āρāϝāĻŧ⧇āĻŽāĻŋāϰ āĻ…āύ⧁āĻ­ā§‚āϤāĻŋ āϛ⧇āĻĄāĻŧ⧇ āϝāĻžāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ­āĻĻā§āϰāϤāĻž, āĻ•ā§ŒāĻļāϞ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āύāϰāĻŽ āĻĻāĻ•ā§āώāϤāĻž āφāĻŽāϰāĻž āĻŦāĻŋāύāϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āύ⧀āϰāĻŦ āĻ›āĻŋāϞāĻžāĻŽ, āĻāĻŦāĻ‚ āϏāĻ‚āϞāĻžāĻĒ⧇ āĻ…āĻļā§āϞ⧀āϞāϤāĻž āϏ⧇āĻ¨ā§āϏāϰ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻāχ āϜāĻžāϝāĻŧāĻ—āĻžĐžāĻĒ⧃āĻˇā§āĻ āĻžāϰ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ—āχ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āĻāϟāĻž āφāĻŽāĻžāϰ āϜāĻ¨ā§āϝāĻ“ āĻšāϤāĻŦāĻžāĻ•, āϝāĻŋāύāĻŋ āĻĻā§€āĻ°ā§āϘāĻĻāĻŋāύ āϧāϰ⧇ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŽāĻžāĻ¤ā§āϰāĻžāϰ āϕ⧁āϟāĻŋāϞāϤāĻžāϰ āϏāĻžāχāϕ⧇āϞ āĻĻ⧇āϖ⧇āϛ⧇āύāĨ¤

āĻāϟāĻž āύāĻŋāĻ°ā§āĻĻā§‹āώāĻ­āĻžāĻŦ⧇ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ, āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāϪ⧇āϰ āϏāĻžāĻĨ⧇āĨ¤ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϤāĻžāϰāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧁āύ

bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;

āĻ āĻŋāĻ• āφāϛ⧇, āϝāĻžāϰāĻž MTProto āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ "āϏāĻ‚āĻļā§‹āϧāĻŋāϤ - āĻĒ⧁āύāϰāĻžāϝāĻŧ āϏāĻ‚āĻ•āϞāĻŋāϤ - āϚāĻžāϞ⧁" āϚāĻ•ā§āϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽā§‹āĻ•āĻžāĻŦāĻŋāϞāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻž āϞāĻŦāĻŖ āϝāĻž āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ–āĻžāϰāĻžāĻĒ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻž āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāώāϝāĻŧāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻāĻ–āĻžāύ⧇ āĻĻ⧁āϟāĻŋ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āφāϛ⧇:

  1. āĻāϰ āĻŽāĻžāύ⧇ āĻŽā§‚āϞ āĻŦāĻžāĻ°ā§āϤāĻž āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϗ⧇āϛ⧇āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋāϛ⧁ āϏāĻžāϰāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āφāĻŽāϰāĻž āĻĒāϰ⧇ āĻĻ⧇āĻ–āĻŦāĨ¤
  2. āĻāχ āĻ…āĻĻā§āϭ⧁āϤ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž āĻ•āĻŋ? 16, 17, 18, 19, 20, 32, 33, 34, 35, 48, 64... āĻ…āĻ¨ā§āϝ āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞ⧋ āϕ⧋āĻĨāĻžāϝāĻŧ, āϟāĻŽāĻŋ?

āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻŦāϞ⧇:

āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻšāϞ āϝ⧇ error_code āĻŽāĻžāύāϗ⧁āϞāĻŋāϕ⧇ āĻ—ā§‹āĻˇā§āĻ ā§€āĻŦāĻĻā§āϧ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ (error_code >> 4): āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, 0x40 — 0x4f āϕ⧋āĻĄāϗ⧁āϞāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĒāϚāύ⧇āϰ āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āϝāĻžāϝāĻŧ⧎

āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻĒā§āϰāĻĨāĻŽāϤ, āĻ…āĻ¨ā§āϝ āĻĻāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ, āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϤ, āĻāϟāĻŋ āϕ⧋āύ āĻŦā§āϝāĻžāĻĒāĻžāϰ āύāĻž, āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϕ⧋āĻĄāϗ⧁āϞāĻŋ āϕ⧋āĻĨāĻžāϝāĻŧ? āϞ⧇āĻ–āϕ⧇āϰ āĻŽāĻžāĻĨāĻžāϝāĻŧ?.. āϝāĻžāχāĻšā§‹āĻ•, āĻāϗ⧁āϞ⧋ āϤ⧁āĻšā§āĻ› āĻ•āĻĨāĻžāĨ¤

āĻŦāĻžāĻ°ā§āϤāĻž āĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻāĻŦāĻ‚ āĻŦāĻžāĻ°ā§āϤāĻž āĻ•āĻĒāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϤ⧇ āφāϏāĻ•ā§āϤāĻŋ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ:

  • āĻŦāĻžāĻ°ā§āϤāĻž āĻ¸ā§āĻĨāĻŋāϤāĻŋ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āύ⧁āϰ⧋āϧ
    āϝāĻĻāĻŋ āωāĻ­āϝāĻŧ āĻĒāĻ•ā§āώ āĻ•āĻŋāϛ⧁ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϤāĻžāϰ āĻŦāĻšāĻŋāĻ°ā§āĻ—āĻžāĻŽā§€ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻ¸ā§āĻĨāĻŋāϤāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āύāĻž āĻĒāĻžāϝāĻŧ āϤāĻŦ⧇ āĻāϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ⧇āϰ āĻ•āĻžāĻ› āĻĨ⧇āϕ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:
    msgs_state_req#da69fb52 msg_ids:Vector long = MsgsStateReq;
  • āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻ¸ā§āĻĨāĻŋāϤāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϤāĻĨā§āϝāĻŽā§‚āϞāĻ• āĻŦāĻžāĻ°ā§āϤāĻž
    msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
    āĻāĻ–āĻžāύ⧇, info āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϝāĻž āχāύāĻ•āĻžāĻŽāĻŋāĻ‚ msg_ids āϤāĻžāϞāĻŋāĻ•āĻž āĻĨ⧇āϕ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāĻ°ā§āϤāĻž āĻ¸ā§āĻĨāĻŋāϤāĻŋāϰ āĻ āĻŋāĻ• āĻāĻ• āĻŦāĻžāχāϟ āϧāĻžāϰāĻŖ āĻ•āϰ⧇:
    • 1 = āĻŦāĻžāĻ°ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋāϛ⧁āχ āϜāĻžāύāĻž āύ⧇āχ (msg_id āϖ⧁āĻŦ āĻ•āĻŽ, āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ āĻāϟāĻŋ āϭ⧁āϞ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇)
    • 2 = āĻŦāĻžāĻ°ā§āϤāĻž āĻ—ā§ƒāĻšā§€āϤ āĻšāϝāĻŧāύāĻŋ (msg_id āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϰ āϏ⧀āĻŽāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻĄāĻŧ⧇; āϤāĻŦ⧇, āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ āĻ…āĻŦāĻļā§āϝāχ āĻāϰāĻ•āĻŽ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāϝāĻŧāύāĻŋ)
    • 3 = āĻŦāĻžāĻ°ā§āϤāĻž āĻ—ā§ƒāĻšā§€āϤ āĻšāϝāĻŧāύāĻŋ (msg_id āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ; āϤāĻŦ⧇, āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ āĻ…āĻŦāĻļā§āϝāχ āĻāϟāĻŋ āĻāĻ–āύāĻ“ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āύāĻŋ)
    • 4 = āĻŦāĻžāĻ°ā§āϤāĻž āĻ—ā§ƒāĻšā§€āϤ (āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āĻāχ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āϰāϏāĻŋāĻĻ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ)
    • +8 = āĻŦāĻžāĻ°ā§āϤāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ
    • +16 = āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ
    • +32 = āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨāĻžāĻ•āĻž RPC āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āĻŦāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ
    • +64 = āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž
    • +128 = āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ āϜāĻžāύ⧇ āϝ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ—ā§ƒāĻšā§€āϤ āĻšāϝāĻŧ⧇āϛ⧇
      āĻāχ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻž. āĻāϟāĻŋ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• msgs_state_req-āĻāϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ, āĻāĻŦāĻ‚ āύāĻŋāĻœā§‡āχāĨ¤
      āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āϝāĻĻāĻŋ āĻšāĻ āĻžā§Ž āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ āϝ⧇ āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ⧇āϰ āĻ•āĻžāϛ⧇ āĻāĻŽāύ āϕ⧋āύāĻ“ āĻŦāĻžāĻ°ā§āϤāĻž āύ⧇āχ āϝāĻž āĻĻ⧇āϖ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āĻāϟāĻŋ āϤāĻžāϕ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāύ⧋ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋāϰ āĻĻ⧁āϟāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āϤāĻŦ⧇ āύāĻ•āϞāϟāĻŋ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ (āϝāĻĻāĻŋ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āϏāĻŽāϝāĻŧ āϚāϞ⧇ āϝāĻžāϝāĻŧ, āĻāĻŦāĻ‚ āφāϏāϞ msg_id āφāϰ āĻŦ⧈āϧ āύāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ msg_copy āĻ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāĻŦ⧇)āĨ¤
  • āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻ¸ā§āĻĨāĻŋāϤāĻŋāϰ āĻ¸ā§āĻŦ⧇āĻšā§āĻ›āĻžāϏ⧇āĻŦā§€ āϝ⧋āĻ—āĻžāϝ⧋āĻ—
    āωāĻ­āϝāĻŧ āĻĒāĻ•ā§āώ āĻ¸ā§āĻŦ⧇āĻšā§āĻ›āĻžāϝāĻŧ āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώāϕ⧇ āĻ…āĻ¨ā§āϝ āĻĒāĻ•ā§āώ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰ⧇āϰāĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻŦāĻšāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
    msgs_all_info#8cc0d131 msg_ids:Vector long info:string = MsgsAllInfo
  • āĻāĻ• āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻ¸ā§āĻĨāĻŋāϤāĻŋāϰ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ¸ā§āĻŦ⧇āĻšā§āĻ›āĻžāϏ⧇āĻŦā§€ āϝ⧋āĻ—āĻžāϝ⧋āĻ—
    ...
    msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
    msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
  • āĻŦāĻžāĻ°ā§āϤāĻž āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāϤ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ…āύ⧁āϰ⧋āϧ
    msg_resend_req#7d861a08 msg_ids:Vector long = MsgResendReq;
    āϰāĻŋāĻŽā§‹āϟ āĻĒāĻžāĻ°ā§āϟāĻŋ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϝāĻŧ [â€Ļ]
  • āωāĻ¤ā§āϤāϰ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāϤ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻ…āύ⧁āϰ⧋āϧ
    msg_resend_ans_req#8610baeb msg_ids:Vector long = MsgResendReq;
    āϰāĻŋāĻŽā§‹āϟ āĻĒāĻžāĻ°ā§āϟāĻŋ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāύ⧋āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻžāĻĄāĻŧāĻž āĻĻ⧇āϝāĻŧ āωāĻ¤ā§āϤāϰ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϤ⧇ [â€Ļ]
  • āĻŦāĻžāĻ°ā§āϤāĻž āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ
    āĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇, āĻāĻ•āϟāĻŋ msg_id āϏāĻš āĻāĻ•āϟāĻŋ āĻĒ⧁āϰāĻžāύ⧋ āĻŦāĻžāĻ°ā§āϤāĻž āϝāĻž āφāϰ āĻŦ⧈āϧ āύāϝāĻŧ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāύ⧋āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧎ āϤāĻžāϰāĻĒāϰ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻĒāĻžāĻ¤ā§āϰ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ:
    msg_copy#e06046b2 orig_message:Message = MessageCopy;
    āĻāĻ•āĻŦāĻžāϰ āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϞ⧇, āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āϝ⧇āύ āĻŽā§‹āĻĄāĻŧāĻ•āϟāĻŋ āϏ⧇āĻ–āĻžāύ⧇ āύ⧇āχāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϝāĻĻāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤāĻ­āĻžāĻŦ⧇ āϜāĻžāύāĻž āϝāĻžāϝāĻŧ āϝ⧇ orig_message.msg_id āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻ—ā§ƒāĻšā§€āϤ āĻšāϝāĻŧ⧇āϛ⧇, āϤāĻžāĻšāϞ⧇ āύāϤ⧁āύ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž (āϝāĻĻāĻŋāĻ“ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇, āĻāϟāĻŋ āĻāĻŦāĻ‚ orig_message.msg_id āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ)āĨ¤ orig_message.msg_id-āĻāϰ āĻŽāĻžāύ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ msg_id āĻĨ⧇āϕ⧇ āĻ•āĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻāϰ āĻāĻŽāύāĻ•āĻŋ āĻ•āĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚ⧁āĻĒ āĻ•āϰāĻž āϝāĻžāĻ• msgs_state_info āφāĻŦāĻžāϰ āĻ…āϏāĻŽāĻžāĻĒā§āϤ TL-āĻāϰ āĻ•āĻžāύ āφāϟāϕ⧇ āϝāĻžāĻšā§āϛ⧇ (āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻžāχāĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ āĻĻāϰāĻ•āĻžāϰ āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ āύ⧀āĻšā§‡āϰ āĻĻ⧁āϟāĻŋ āĻŦāĻŋāĻŸā§‡ āĻāĻ•āϟāĻŋ āĻāύāĻžāĻŽ āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āωāĻšā§āϚāϤāϰ āĻĻ⧁āϟāĻŋ āĻŦāĻŋāĻŸā§‡ āĻĒāϤāĻžāĻ•āĻž āĻ›āĻŋāϞ)āĨ¤ āĻŦāĻŋāώāϝāĻŧāϟāĻž āĻ­āĻŋāĻ¨ā§āύāĨ¤ āϕ⧇āω āĻ•āĻŋ āĻŦā§‹āĻā§‡ āϕ⧇āύ āĻāχ āϏāĻŦ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇? āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻŽāĻ§ā§āϝ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ?.. āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϰ āϏāĻžāĻĨ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧇āω āĻ•āĻŋāϛ⧁ āϏ⧁āĻŦāĻŋāϧāĻž āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻĻāĻŋ āĻāĻ•āϜāύ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āϝāĻŧ⧇ āύāĻŋāϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻŽā§‹āĻĄā§‡ - āϏāĻžāĻ°ā§āĻ­āĻžāϰāϕ⧇ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰ⧁āύ āĻ•āĻŋ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ āϰāĻžāωāĻ¨ā§āĻĄ āĻŸā§āϰāĻŋāĻĒ.

āĻāϟāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āϝ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻ•ā§āώāϕ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻāĻŦāĻ‚ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇ āύāĻž, āϤāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇, āϤāĻžāĻĻ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇, āĻ…āϜāĻžāύāĻž āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻāχ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāϰ āϏāĻŽāϝāĻŧ āĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻĒā§āϰāϝ⧋āĻœā§āϝāϤāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇ āύāĻžāĨ¤ āϕ⧋āύ āωāĻĒāĻžāϝāĻŧ. āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ• āĻŦāĻŋāώāϝāĻŧ āĻšāϞ āϝ⧇ āϤāĻžāϰāĻž āφāϏāϞ⧇ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āϕ⧋āĻĄā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ! āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ āϤāĻžāĻĻ⧇āϰ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āĻŦāϞāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϝāĻž āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ›āĻŋāϞ āύāĻžāĨ¤ āϕ⧋āĻĄ āĻĨ⧇āϕ⧇ āĻŦ⧁āĻā§‡ āύāĻŋāύ āϕ⧇āύ, āϟāĻŋāĻāϞ-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāϰ āϤāϤāϟāĻž āϏāĻšāϜ āύāϝāĻŧ - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ (āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ•āĻ­āĻžāĻŦ⧇) āϝ⧌āĻ•ā§āϤāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ…āĻ‚āĻļ āύāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āφāĻŦāĻĻā§āϧ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ, āϝ⧇āĻŽāύ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧋āĻĄ āĻŦ⧁āĻāϤ⧇ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āϏāĻŽāϝāĻŧ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇.

āĻĒāĻŋāĻ‚ āĻāĻŦāĻ‚ āϏāĻŽāϝāĻŧ. āϏāĻžāϰāĻŋāĨ¤

āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĨ⧇āϕ⧇, āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ (āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϜ⧁āĻĄāĻŧ⧇ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻŦāĻŋāϤāϰāĻŖ) āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āύ⧁āĻŽāĻžāύāϗ⧁āϞāĻŋ āĻŽāύ⧇ āϰāĻžāĻ–āĻŋ āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻŦāϰāĻ‚ āĻĻ⧁āσāĻ–āϜāύāĻ• āĻŦāĻŋāώāϝāĻŧ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ - TCP-āϤ⧇ āϏāĻŽāĻ¸ā§āϤ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āĻĨāĻžāĻ•āĻž āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“ (āĻšāϝāĻŧ āĻĄā§‡āϟāĻž āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻŦāĻž āφāĻĒāύāĻžāϕ⧇ āĻ—ā§āϝāĻžāĻĒ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻŦāĻšāĻŋāϤ āĻ•āϰāĻž āĻšāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇āχ āĻĄā§‡āϟāĻž āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāĻŦ⧇), āϝ⧇āϟāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ MTProto-āϤ⧇ āϕ⧋āύ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āύ⧇āχ. āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻšāĻœā§‡āχ āφāĻĒāύāĻžāϰ āĻŦāĻžāĻ°ā§āϤāĻž āĻšāĻžāϰāĻžāϤ⧇ āĻŦāĻž āĻĢ⧇āϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋāϛ⧁āχ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āύāĻž, āĻļ⧁āϧ⧁ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻ•ā§āϰāĻžāϚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽāϤ - āĻŦāĻžāĻ°ā§āϤāĻž āϏāĻžāϰāĻŋāĨ¤ āĻ āĻŋāĻ• āφāϛ⧇, āĻāĻ•āϟāĻŋ āϜāĻŋāύāĻŋāϏ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻĨāĻŽ āĻĨ⧇āϕ⧇āχ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ›āĻŋāϞ - āĻāĻ•āϟāĻŋ āĻ…āĻĒā§āϰāĻŽāĻžāĻŖāĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻž āĻ…āĻŦāĻļā§āϝāχ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāϰāĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϤ⧇ āĻ•āϤāĻ•ā§āώāĻŖ āϏāĻŽāϝāĻŧ āϞāĻžāĻ—āĻŦ⧇? āĻāĻŦāĻ‚ āĻŦāĻŋāĻĻā§āϰ⧂āĻĒāĻ•āĻžāϰ⧀ āϤāĻžāϕ⧇ āĻšā§‡āύ⧇āĨ¤ āϏāĻŽā§āĻ­āĻŦāϤ āϏ⧇āχ āφāϏāĻ•ā§āϤ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻ•ā§āϰāĻžāϚ āĻĻāĻŋāϝāĻŧ⧇ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇, āĻŦāϞ⧁āύ, āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ⧇ āĻĒā§āϰāĻžāϝāĻŧ 4āϟāĻŋ āϏāĻžāϰāĻŋ āϰāϝāĻŧ⧇āϛ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ (āĻšāϝāĻŧāϤ⧋ āφāϰāĻ“, āϝ⧇āĻŽāύāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϕ⧇ āφāϰāĻ“ āϗ⧁āϰ⧁āĻ¤ā§āĻŦ āϏāĻšāĻ•āĻžāϰ⧇ āĻāϰ āϕ⧋āĻĄ āĻāĻŦāĻ‚ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϕ⧇ āφāϰāĻ“ āϗ⧁āϰ⧁āĻ¤ā§āĻŦ āϏāĻšāĻ•āĻžāϰ⧇ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇; āĻāĻ•āχ āϏāĻžāĻĨ⧇ āϏāĻŽāϝāĻŧ, āφāĻŽāϰāĻž āϜāĻžāύāĻŋ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŽā§āύāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž MTProto āĻ¸ā§āĻ•āĻŋāĻŽ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž)āĨ¤

āχāĻšāĻž āĻ•āĻŋ āϜāĻ¨ā§āϝ āϘāϟāĻŋāϤ⧇āϛ⧇? āϏāĻŽā§āĻ­āĻŦāϤ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϰāĻž āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝāϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĻŋ, āĻāĻŽāύāĻ•āĻŋ āϏāĻžāĻŽāύ⧇āϰ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ⧇ āĻŦāĻžāĻĢāĻžāϰāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĻŋ āĻāĻŦāĻ‚ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻžāϛ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻšāϤāĻžāĻļāĻž āĻĨ⧇āϕ⧇, āĻ­ā§āϝāĻžāϏāĻŋāϞāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĻ⧁āϟāĻŋ āϏāĻžāϰāĻŋ āĻĻāĻŋāϝāĻŧ⧇, TCP āĻĨ⧇āϕ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ - āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ RTT āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻ…āύāĻŋāĻļā§āϚāĻŋāϤ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ "āωāχāĻ¨ā§āĻĄā§‹" (āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϤ⧇) āĻāϰ āφāĻ•āĻžāϰ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ āĻ•āϰāĻžāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϞ⧋āĻĄā§‡āϰ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻŽā§‹āϟāĻžāĻŽā§āϟāĻŋ āĻšāĻŋāωāϰāĻŋāĻ¸ā§āϟāĻŋāĻ• āĻšāϞ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āϤāϗ⧁āϞāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āϚāĻŋāĻŦāĻžāύ⧋ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻšāĻžāϰāĻžāύ⧋ āϝāĻžāϝāĻŧ āύāĻžāĨ¤

āφāĻšā§āĻ›āĻž, āϝ⧇, āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāϛ⧇āύ, āϤāĻžāχ āύāĻž? āϝāĻĻāĻŋ āφāĻĒāύāĻžāϕ⧇ āϟāĻŋāϏāĻŋāĻĒāĻŋāϰ āωāĻĒāϰ⧇ āϚāϞāĻŽāĻžāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āωāĻĒāϰ⧇ āφāĻŦāĻžāϰ āϟāĻŋāϏāĻŋāĻĒāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻŦ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϖ⧁āĻŦ āĻ–āĻžāϰāĻžāĻĒāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤

āĻ“āĻš āĻšā§āϝāĻžāρ, āϕ⧇āύ āφāĻĒāύāĻžāϰ āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāϰāĻŋ āĻĻāϰāĻ•āĻžāϰ, āĻāĻŦāĻ‚ āϝāĻžāχāĻšā§‹āĻ• āωāĻšā§āϚ-āĻ¸ā§āϤāϰ⧇āϰ API āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āĻāĻ•āϜāύ āĻŦā§āϝāĻ•ā§āϤāĻŋāϰ āϜāĻ¨ā§āϝ āĻāϰ āĻ…āĻ°ā§āĻĨ āϕ⧀? āĻĻ⧇āϖ⧁āύ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇āύ, āĻāϟāĻŋ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞ āĻ•āϰ⧇āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āφāĻĒāύāĻŋ āϤāĻž āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇āύ āύāĻžāĨ¤ āϕ⧇āύ? āĻ•āĻžāϰāĻŖ āωāĻ¤ā§āϤāϰ āĻšāĻŦ⧇ msg_id, āϝāĻž āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€Đ°āφāĻŽāĻŋ āĻāĻ•āϟāĻŋ āϞ⧇āĻŦ⧇āϞ, āϝāĻžāϰ āĻ…ā§āϝāĻžāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āϝāϤāϟāĻž āϏāĻŽā§āĻ­āĻŦ āĻĻ⧇āϰ⧀ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ¸ā§āĻĨāĻ—āĻŋāϤ āĻ•āϰāĻž āĻ­āĻžāϞ - āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻŦāĻ‚ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŽāϝāĻŧ⧇āϰ āĻ…āĻŽāĻŋāϞ⧇āϰ āĻ•āĻžāϰāϪ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϟāĻŋ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰ⧇ (āĻ…āĻŦāĻļā§āϝāχ, āφāĻŽāϰāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻžāϚ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻŽāϝāĻŧāϕ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻĨ⧇āϕ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĨ⧇āϕ⧇ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻĄā§‡āĻ˛ā§āϟāĻž āϝ⧋āĻ— āĻ•āϰ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ - āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž āĻāϟāĻŋ āĻ•āϰ⧇, āϤāĻŦ⧇ āĻāϟāĻŋ āĻŦāĻžāĻĢāĻžāϰāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ•āĻžāϰāϪ⧇ āĻ…āĻļā§‹āϧāĻŋāϤ āĻāĻŦāĻ‚ āϭ⧁āϞ)āĨ¤ āĻ…āϤāĻāĻŦ, āφāĻĒāύāĻŋ āϝāĻ–āύ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĨ⧇āϕ⧇ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇āύ, āϤāĻ–āύ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āϝāĻžāϝāĻŧ:

  1. āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻžāϰāĻŋāϤ⧇ āϰāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϛ⧇⧎
  2. āύāĻŋāϝ⧁āĻ•ā§āϤ msg_id āĻāĻŦāĻ‚ āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻ…āĻ¨ā§āϝ āϏāĻžāϰāĻŋāϤ⧇ āϚāϞ⧇ āϗ⧇āϛ⧇ - āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ‚; āϏāϕ⧇āĻŸā§‡ āĻĒāĻžāĻ āĻžāύāĨ¤
  3. āĻ•) āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ MsgsAck āĻāϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻŋāϝāĻŧ⧇āϛ⧇ - āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āφāĻŽāϰāĻž āĻāϟāĻŋāϕ⧇ "āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϏāĻžāϰāĻŋ" āĻĨ⧇āϕ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻŋ⧎
    āĻ–) āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻĒāϰ⧀āϤāĻ­āĻžāĻŦ⧇, āϤāĻŋāύāĻŋ āĻ•āĻŋāϛ⧁ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰ⧇āύāύāĻŋ, āϤāĻŋāύāĻŋ āĻŦā§āϝāĻžāĻĄāĻāĻŽāĻāϏāϜāĻŋ-āĻāϰ āωāĻ¤ā§āϤāϰ āĻĻāĻŋāϝāĻŧ⧇āϛ⧇āύ - "āĻ…āĻ¨ā§āϝ āϏāĻžāϰāĻŋ" āĻĨ⧇āϕ⧇ āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāύ
    āĻ—) āĻ•āĻŋāϛ⧁āχ āϜāĻžāύāĻž āύ⧇āχ, āĻŦāĻžāĻ°ā§āϤāĻžāϟāĻŋ āĻ…āĻ¨ā§āϝ āϏāĻžāϰāĻŋ āĻĨ⧇āϕ⧇ āϰāĻŋāϏ⧇āĻ¨ā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ - āϤāĻŦ⧇ āĻ•āĻ–āύ āϤāĻž āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϜāĻžāύāĻž āϝāĻžāϝāĻŧāύāĻŋāĨ¤
  4. āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…āĻŦāĻļ⧇āώ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž RpcResult - āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž (āĻŦāĻž āĻ¤ā§āϰ⧁āϟāĻŋ) - āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻšāϝāĻŧāϤ⧋, āĻĒāĻžāĻ¤ā§āϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āφāĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇. āĻāϟāĻŋ āϤāĻ–āύāχ āĻšāϝāĻŧ āϝāĻ–āύ āĻāĻ•āϗ⧁āĻšā§āĻ› āĻŦāĻžāĻ°ā§āϤāĻž āĻāĻ•āϟāĻŋāϤ⧇ āĻĒā§āϝāĻžāĻ• āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻ•āϝ⧋āϗ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻ•āϞ⧇āϰ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāϪ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϝāĻŧ msg_id. āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻŋāύāĻŋ āĻāχ āĻĒā§āϝāĻžāĻ•āϟāĻŋāϕ⧇āĻ“ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰāĻŦ⧇āύ, āϝāĻĻāĻŋ āĻ•āĻŋāϛ⧁ āϭ⧁āϞ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇āĨ¤

āĻāĻŦāĻ‚ āĻāχ āĻŽā§āĻšā§āĻ°ā§āϤ⧇ āĻ…-āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻŦāĻŋāĻŦ⧇āϚāύāĻžāϗ⧁āϞāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāϝāĻŧāĨ¤ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āĻĨ⧇āϕ⧇, āφāĻŽāϰāĻž āĻ…āύ⧇āĻ• āĻ•ā§āϰāĻžāϚ āĻĻ⧇āϖ⧇āĻ›āĻŋ, āĻāĻŦāĻ‚ āωāĻĒāϰāĻ¨ā§āϤ⧁, āφāĻŽāϰāĻž āĻāĻ–āύ āĻ–āĻžāϰāĻžāĻĒ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ⧇āϰ āφāϰāĻ“ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ - āĻāχ āϧāϰāύ⧇āϰ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇, āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻāχ āϧāϰāύ⧇āϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύ⧇āĻ“āϝāĻŧāĻž āĻ•āĻŋ āĻŽā§‚āĻ˛ā§āϝāĻŦāĻžāύ? āĻĒā§āϰāĻļā§āύāϟāĻŋ āĻ…āϞāĻ™ā§āĻ•ā§ƒāϤ (āĻ…āĻŦāĻļā§āϝāχ āύāϝāĻŧ)āĨ¤

āφāĻŽāϰāĻž āĻ•āĻŋ āĻŦāĻŋāώāϝāĻŧ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻ›āĻŋ? āϝāĻĻāĻŋ "āĻŽā§‡āϏ⧇āϜ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ“āώ⧁āϧ⧇āϰ āĻŦāĻžāĻ°ā§āϤāĻž" āĻāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āφāĻĒāύāĻŋ āĻāĻ–āύāĻ“ āφāĻĒāĻ¤ā§āϤāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇āĻŽāύ "āφāĻĒāύāĻŋ āĻŦā§‹āĻ•āĻž, āφāĻĒāύāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇āύāύāĻŋ!" (āϏ⧁āϤāϰāĻžāĻ‚ āφāϗ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϞāĻŋāϖ⧁āύ, āϝ⧇āĻŽāύ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŽāĻžāύ⧁āώ⧇āϰ āωāϚāĻŋāϤ, āϝ⧁āĻ•ā§āϤāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϝāĻžāϕ⧇āϟ āĻāĻ•ā§āϏāĻšā§‡āĻžā§āĻœā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖ āϏāĻš, āϤāĻžāϰāĻĒāϰ āφāĻŽāϰāĻž āĻ•āĻĨāĻž āĻŦāϞāĻŦ), āϤāĻžāϰāĻĒāϰ āϏāĻŽāϝāĻŧ/āϟāĻžāχāĻŽāφāωāϟ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒā§āϰāĻļā§āύ, āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāϰāĻŋāϚāĻŋāϤāĨ¤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āϟāĻžāχāĻŽāφāωāϟ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧀ āĻŦāϞ⧇?

āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ RPC āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ (āϏāĻžāϧāĻžāϰāĻŖāϤ, āĻāĻ•āϟāĻŋ RPC āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀) āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻĒā§āϰāĻžāĻĒā§āϤāĻŋ āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āφāϏ⧇, āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻ•āϟāĻŋ āϰāϏāĻŋāĻĻ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁āϟāĻž āĻĒāϰ⧇, RPC āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāĻœā§‡āχāĨ¤

āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϰ āĻĒā§āϰāĻžāĻĒā§āϤāĻŋ āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰ⧇ (āϏāĻžāϧāĻžāϰāĻŖāϤ, āĻāĻ•āϟāĻŋ RPC āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž) āĻĒāϰāĻŦāĻ°ā§āϤ⧀ RPC āϕ⧋āϝāĻŧ⧇āϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ āϝ⧋āĻ— āĻ•āϰ⧇ āϝāĻĻāĻŋ āĻāϟāĻŋ āϖ⧁āĻŦ āĻĻ⧇āϰāĻŋ āύāĻž āĻšāϝāĻŧ (āϝāĻĻāĻŋ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻŦāϞ⧁āύ, āĻĒā§āϰāĻžāĻĒā§āϤāĻŋāϰ 60-120 āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒāϰ⧇) āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻžāϰ)āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϝāĻĻāĻŋ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāĻ āĻžāύ⧋āϰ āϕ⧋āύ āĻ•āĻžāϰāĻŖ āύāĻž āĻĨāĻžāϕ⧇ āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻĒā§āϰāϚ⧁āϰ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻ…āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āĻŦāĻžāĻ°ā§āϤāĻž āĻĨāĻžāϕ⧇ (āĻŦāϞ⧁āύ, 16-āĻāϰ āĻŦ⧇āĻļāĻŋ), āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇āĨ¤

... āφāĻŽāĻŋ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāĻŋ: āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āϰāĻžāχ āϜāĻžāύāĻŋ āύāĻž āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāϟāĻŋ āĻ•āϤāϟāĻž āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āϤāĻžāχ āϧāϰ⧇ āύāĻŋāχ āϝ⧇ āĻāϟāĻŋ āĻāĻŽāύ āĻšāϤ⧇ āĻĻāĻŋāύāĨ¤

āĻāĻŦāĻ‚ āĻĒāĻŋāĻ‚āϏ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇:

āĻĒāĻŋāĻ‚ āĻŦāĻžāĻ°ā§āϤāĻž (PING/PONG)

ping#7abe77ec ping_id:long = Pong;

āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āχ āϏāĻ‚āϝ⧋āϗ⧇ āĻĢāĻŋāϰ⧇ āφāϏ⧇:

pong#347773c5 msg_id:long ping_id:long = Pong;

āĻāχ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ āĻāĻ•āϟāĻŋ āĻĒāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻĒāĻŋāĻ‚ āĻāϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĒāĻŋāĻ‚ āωāĻ­āϝāĻŧ āĻĒāĻ•ā§āώ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻŦāĻŋāϞāĻŽā§āĻŦāĻŋāϤ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻ¨ā§āϧ + PING

ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

āĻĒāĻŋāĻ‚ āĻāϰ āĻŽāϤ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āωāĻĒāϰāĻ¨ā§āϤ⧁, āĻāϟāĻŋ āĻĒā§āϰāĻžāĻĒā§āϤāĻŋāϰ āĻĒāϰ⧇, āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻāĻ•āϟāĻŋ āϟāĻžāχāĻŽāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āϝāĻž āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āĻŦ⧇ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ_āĻŦāĻŋāĻšā§āϛ⧇āĻĻ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒāϰ⧇ āϝāĻĻāĻŋ āύāĻž āĻāϟāĻŋ āĻāĻ•āχ āϧāϰāϪ⧇āϰ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻŦāĻžāĻ°ā§āϤāĻž āύāĻž āĻĒāĻžāϝāĻŧ āϝāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻŽāĻ¸ā§āϤ āϟāĻžāχāĻŽāĻžāϰ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§āϰāϤāĻŋ 60 āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āĻāĻ•āĻŦāĻžāϰ āĻāχ āĻĒāĻŋāĻ‚āϗ⧁āϞāĻŋ āĻĒāĻžāĻ āĻžāϝāĻŧ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāϟāĻŋ 75 āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āϏāĻŽāĻžāύ disconnect_delay āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϤ⧁āĻŽāĻŋ āĻ•āĻŋ āĻĒāĻžāĻ—āϞ?! 60 āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇, āĻŸā§āϰ⧇āύāϟāĻŋ āĻ¸ā§āĻŸā§‡āĻļāύ⧇ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻŦ⧇, āύāĻžāĻŽāĻŦ⧇ āĻāĻŦāĻ‚ āϝāĻžāĻ¤ā§āϰ⧀āĻĻ⧇āϰ āϤ⧁āϞ⧇ āύ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āφāĻŦāĻžāϰ āϟāĻžāύ⧇āϞ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāĻŦ⧇āĨ¤ 120 āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇, āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāϟāĻŋ āĻļ⧁āύāϤ⧇ āĻĒāĻžāĻŦ⧇āύ, āĻāϟāĻŋ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋāϤ⧇ āĻĒ⧌āρāĻ›āĻžāĻŦ⧇ āĻāĻŦāĻ‚ āϏāĻŽā§āĻ­āĻŦāϤ āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āϭ⧇āϙ⧇ āϝāĻžāĻŦ⧇āĨ¤ āĻ āĻŋāĻ• āφāϛ⧇, āĻāϟāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āϝ⧇ āĻĒāĻž āϕ⧋āĻĨāĻž āĻĨ⧇āϕ⧇ āφāϏāϛ⧇ - "āφāĻŽāĻŋ āĻāĻ•āϟāĻŋ āϰāĻŋāĻ‚ āĻļ⧁āύ⧇āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϜāĻžāύāĻŋ āύāĻž āĻāϟāĻŋ āϕ⧋āĻĨāĻžāϝāĻŧ", āϏ⧇āĻ–āĻžāύ⧇ Nagl āĻāϰ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻāĻŦāĻ‚ TCP_NODELAY āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϰāϝāĻŧ⧇āϛ⧇, āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻ•āĻžāĻœā§‡āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻ•ā§āώāĻŽāĻž āĻ•āϰāĻŦ⧇āύ, āĻāϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽāĻžāύ - 200 āϧāϰ⧇ āϰāĻžāϖ⧁āύ āĻŽāĻŋāĻ˛ā§āϞāĻŋāϏ⧇āϕ⧇āĻ¨ā§āĻĄ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻ¤ā§āϝāĻŋāχ āĻ…āύ⧁āϰ⧂āĻĒ āĻ•āĻŋāϛ⧁ āϚāĻŋāĻ¤ā§āϰāĻŋāϤ āĻ•āϰāϤ⧇ āϚāĻžāύ āĻāĻŦāĻ‚ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āĻŸā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ 5 āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻŦāĻ¨ā§āϧ āϰāĻžāϖ⧁āύ, āĻŦāĻž "āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϟāĻžāχāĻĒ āĻ•āϰāϛ⧇āύ..." āĻŽā§‡āϏ⧇āϜ āϟāĻžāχāĻŽāφāωāϟ āĻāĻ–āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϰ āύāĻž.

āĻāĻŦāĻ‚ āĻ…āĻŦāĻļ⧇āώ⧇, pings. āĻ…āĻ°ā§āĻĨāĻžā§Ž, TCP āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻœā§€āĻŦāĻ¨ā§āϤāϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ āĻāϟāĻž āĻŽāϜāĻžāϰ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻžāϝāĻŧ 10 āĻŦāĻ›āϰ āφāϗ⧇ āφāĻŽāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…āύ⧁āώāĻĻ⧇āϰ āĻĄāĻ°ā§āĻŽā§‡āϰ āĻŽā§‡āϏ⧇āĻžā§āϜāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāϞ⧋āϚāύāĻžāĻŽā§‚āϞāĻ• āĻĒāĻžāĻ ā§āϝ āϞāĻŋāϖ⧇āĻ›āĻŋāϞāĻžāĻŽ - āϏ⧇āĻ–āĻžāύāĻ•āĻžāϰ āϞ⧇āĻ–āĻ•āϰāĻžāĻ“ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āĻĒāĻŋāĻ‚ āĻ•āϰ⧇āϛ⧇āύ, āĻāĻŦāĻ‚ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇ āύāϝāĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ 3āϝāĻŧ āĻŦāĻ°ā§āώ⧇āϰ āĻļāĻŋāĻ•ā§āώāĻžāĻ°ā§āĻĨā§€āϰāĻž āĻāĻ• āϜāĻŋāύāĻŋāϏ, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āφāĻ¨ā§āϤāĻ°ā§āϜāĻžāϤāĻŋāĻ• āĻ…āĻĢāĻŋāϏ āĻ…āĻ¨ā§āϝ āϜāĻŋāύāĻŋāϏ, āϤāĻžāχ āύāĻž?

āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻ•āϟ⧁ āĻļāĻŋāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĨ¤ āĻāĻ•āϟāĻŋ TCP āϏāĻ‚āϝ⧋āĻ—, āĻĒā§āϝāĻžāϕ⧇āϟ āĻāĻ•ā§āϏāĻšā§‡āĻžā§āĻœā§‡āϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇, āĻ•āϝāĻŧ⧇āĻ• āϏāĻĒā§āϤāĻžāĻš āĻŦ⧇āρāĻšā§‡ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āωāĻ­āϝāĻŧāχāĨ¤ āφāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāĻ•āϟāĻŋ SSH āϏāĻ‚āϝ⧋āĻ— āĻ–ā§‹āϞāĻž āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āĻāϟāĻŋ āĻ­āĻžāϞ, āφāĻĒāύāĻŋ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨ⧇āϕ⧇ āωāϠ⧇āĻ›āĻŋāϞ⧇āύ, āϰāĻžāωāϟāĻžāϰāϟāĻŋ āϰāĻŋāĻŦ⧁āϟ āĻ•āϰ⧇āϛ⧇āύ, āφāĻĒāύāĻžāϰ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻĢāĻŋāϰ⧇ āĻāϏ⧇āϛ⧇āύ - āĻāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏ⧇āĻļāύāϟāĻŋ āĻ›āĻŋāρāĻĄāĻŧ⧇ āϝāĻžāϝāĻŧāύāĻŋ (āφāĻĒāύāĻŋ āĻ•āĻŋāϛ⧁ āϟāĻžāχāĻĒ āĻ•āϰ⧇āύāύāĻŋ, āϕ⧋āύāĻ“ āĻĒā§āϝāĻžāϕ⧇āϟ āĻ›āĻŋāϞ āύāĻž) , āĻāϟāĻž āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ•. āĻāϟāĻž āĻ–āĻžāϰāĻžāĻĒ āϝāĻĻāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻšāĻžāϜāĻžāϰ āĻšāĻžāϜāĻžāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĨāĻžāϕ⧇, āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ (āĻšā§āϝāĻžāϞ⧋, āĻĒā§‹āĻ¸ā§āϟāĻ—ā§āϰ⧇āϏ!), āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻšā§‹āĻ¸ā§āϟ āĻ…āύ⧇āĻ• āφāϗ⧇ āϰāĻŋāĻŦ⧁āϟ āĻšāϝāĻŧ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ - āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻŦ āύāĻžāĨ¤

āĻšā§āϝāĻžāϟ/āφāχāĻāĻŽ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•āĻžāϰāϪ⧇ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĒāĻĄāĻŧ⧇ - āĻ…āύāϞāĻžāχāύ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ⧎ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϝāĻĻāĻŋ "āĻĒāĻĄāĻŧ⧇ āĻĒāĻĄāĻŧ⧇" āϤāĻŦ⧇ āφāĻĒāύāĻžāϕ⧇ āϤāĻžāϰ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύāϕ⧇ āĻ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻŦāĻšāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āϭ⧁āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻļ⧇āώ āĻšāĻŦ⧇āύ āϝāĻž āϜāĻžāĻŦā§āĻŦāĻžāϰ⧇āϰ āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻžāϰāĻž āĻ•āϰ⧇āϛ⧇āύ (āĻāĻŦāĻ‚ 20 āĻŦāĻ›āϰ āϧāϰ⧇ āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰ⧇āϛ⧇āύ) - āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ•āϰ⧇āϛ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϰāĻž āϤāĻžāϕ⧇ āĻŦāĻžāĻ°ā§āϤāĻž āϞāĻŋāĻ–āϤ⧇ āĻĨāĻžāϕ⧇, āĻāχ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰ⧇ āϝ⧇ āϏ⧇ āĻ…āύāϞāĻžāχāύ⧇ āϰāϝāĻŧ⧇āϛ⧇ (āĻāϗ⧁āϞāĻŋāĻ“ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦ⧇ āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϗ⧇āϛ⧇) āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻšāĻ“āϝāĻŧāĻžāϰ āĻ•āϝāĻŧ⧇āĻ• āĻŽāĻŋāύāĻŋāϟ āφāϗ⧇)āĨ¤ āύāĻž, TCP_KEEPALIVE āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϟāĻŋ, āϝāĻž āĻ…āύ⧇āĻ• āϞ⧋āĻ• āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž āϝ⧇ TCP āϟāĻžāχāĻŽāĻžāϰāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϞ⧋āĻŽā§‡āϞ⧋āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ (āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻĻāĻļ⧇āϰ āĻŽāϤ⧋ āĻŦāĻ¨ā§āϝ āĻŽāĻžāύ āϏ⧇āϟ āĻ•āϰ⧇), āĻāĻ–āĻžāύ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇ āύāĻž - āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ OS āĻ•āĻžāĻ°ā§āύ⧇āϞ āύāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻŽā§‡āĻļāĻŋāύāϟāĻŋ āĻœā§€āĻŦāĻŋāϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āύāĻŋāĻœā§‡āχ (āφāĻĒāύāĻŋ āĻ•āĻŋ āĻŽāύ⧇ āĻ•āϰ⧇āύ āĻāϟāĻŋ āĻšāĻŋāĻŽāĻžāϝāĻŧāĻŋāϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž? āωāĻŦ⧁āĻ¨ā§āϟ⧁ 18.04-āĻ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻĄā§‡āĻ¸ā§āĻ•āϟāĻĒ āφāĻŽāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ•āĻŦāĻžāϰ āύāĻŋāĻĨāϰ āĻšāϝāĻŧ⧇ āϗ⧇āϛ⧇)āĨ¤

āĻāϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϕ⧇ āĻĒāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ, āĻāĻŦāĻ‚ āϤāĻĻā§āĻŦāĻŋāĻĒāϰ⧀āϤ āύāĻž - āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāϟāĻŋ āĻ•āϰ⧇, āϝāĻĻāĻŋ āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āϭ⧇āϙ⧇ āϝāĻžāϝāĻŧ, āĻĒāĻŋāĻ‚ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻž, āϞāĻ•ā§āĻˇā§āϝ āĻ…āĻ°ā§āϜāύ āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻžāĨ¤

āφāĻŽāϰāĻž āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡ āĻ•āĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋ? āĻāϟāĻž āĻ āĻŋāĻ• āωāĻ˛ā§āĻŸā§‹! āĻ­āĻžāϞ, āϝ⧇. āφāύ⧁āĻˇā§āĻ āĻžāύāĻŋāĻ•āĻ­āĻžāĻŦ⧇, āĻ…āĻŦāĻļā§āϝāχ, āωāĻ­āϝāĻŧ āĻĒāĻ•ā§āώ āĻāϕ⧇ āĻ…āĻĒāϰāϕ⧇ āĻĒāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ…āύ⧁āĻļā§€āϞāύ⧇, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻžāϚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ ping_delay_disconnect, āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϟāĻžāχāĻŽāĻžāϰ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤ āφāĻšā§āĻ›āĻž, āĻŽāĻžāĻĢ āĻ•āϰāĻŦ⧇āύ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āύāĻž āϝ⧇ āϏ⧇ āϏ⧇āĻ–āĻžāύ⧇ āĻ•āϤāĻĻāĻŋāύ āĻĒāĻŋāĻ‚ āĻ›āĻžāĻĄāĻŧāĻž āĻĨāĻžāĻ•āϤ⧇ āϚāĻžāϝāĻŧāĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ, āϤāĻžāϰ āϞ⧋āĻĄ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇, āĻ­āĻžāϞ āϜāĻžāύ⧇. āϤāĻŦ⧇, āĻ…āĻŦāĻļā§āϝāχ, āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋāϤ⧇ āĻ•āĻŋāϛ⧁ āĻŽāύ⧇ āύāĻž āĻ•āϰ⧇āύ āϤāĻŦ⧇ āφāĻĒāύāĻŋ āύāĻŋāĻœā§‡āϰ āĻŽāĻ¨ā§āĻĻ āĻĒāĻŋāύ⧋āϚāĻŋāĻ“ āĻšāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻžāϚ āĻ•āϰāĻŦ⧇ ...

āĻāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āωāϚāĻŋāϤ āĻ›āĻŋāϞ?

āφāĻŽāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāĻŋ āϝ⧇ āωāĻĒāϰ⧇āϰ āϤāĻĨā§āϝāϗ⧁āϞāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ/āĻ­āĻŋāĻ•āĻ¨ā§āϟāĻžāĻ•ā§āĻŸā§‡ āϟāĻŋāĻŽ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āĻĒāϰāĻŋāĻŦāĻšāĻŖ (āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϤāϰ) āĻ¸ā§āϤāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻŦāĻŋāώāϝāĻŧ⧇ āϤāĻžāĻĻ⧇āϰ āύāĻŋāĻŽā§āύ āϝ⧋āĻ—ā§āϝāϤāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āĻĻāĻ•ā§āώ āύāϝāĻŧāĨ¤

āϕ⧇āύ āĻāϟāĻŋ āĻāϤ āϜāϟāĻŋāϞ āĻšāϝāĻŧ⧇ āωāĻ āϞ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽ āĻ¸ā§āĻĨāĻĒāϤāĻŋāϰāĻž āφāĻĒāĻ¤ā§āϤāĻŋ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ? āϏāĻ¤ā§āϝ āϝ⧇ āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāϞ āϝāĻž āϟāĻŋāϏāĻŋāĻĒāĻŋ āϏāĻ‚āϝ⧋āĻ— āĻŦāĻŋāϰāϤāĻŋ āĻĨ⧇āϕ⧇ āĻŦ⧇āρāĻšā§‡ āϝāĻžāϝāĻŧ, āĻ…āĻ°ā§āĻĨāĻžāĻ¤ā§ āϝāĻž āĻāĻ–āύ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ, āφāĻŽāϰāĻž āĻĒāϰ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻŦāĨ¤ āϤāĻžāϰāĻž āϏāĻŽā§āĻ­āĻŦāϤ āĻāĻ•āϟāĻŋ UDP āĻĒāϰāĻŋāĻŦāĻšāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻžāĻ“ āĻ•āϰ⧇āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϰāĻž āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϰ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĒāϰāĻŋāĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧇āĻ›āĻŋāϞ (āϤāĻžāχ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϟāĻŋ āĻ–āĻžāϞāĻŋ - āĻāϤ⧇ āĻŦāĻĄāĻŧāĻžāχ āĻ•āϰāĻžāϰ āĻ•āĻŋāϛ⧁āχ āĻ›āĻŋāϞ āύāĻž)āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϟāĻŋāϏāĻŋāĻĒāĻŋ āĻ•āĻžāϜ āĻ•āϰ⧇, āϕ⧋āĻĨāĻžāϝāĻŧ āφāĻĒāύāĻŋ āĻāϟāĻŋāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻāĻŦāĻ‚ āϕ⧋āĻĨāĻžāϝāĻŧ āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āύāĻŋāĻœā§‡ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ (āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇) āĻŦā§‹āĻāĻžāϰ āĻ…āĻ­āĻžāĻŦ⧇āϰ āĻ•āĻžāϰāϪ⧇ āĻāĻŦāĻ‚ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋāϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻšā§‡āĻˇā§āϟāĻž “āĻĻ⧁āχ āĻĒāĻžāĻ–āĻŋāϰ āϏāĻžāĻĨ⧇ āĻāĻ• āĻĒāĻžāĻĨāĻ°â€, āĻāϟāĻžāχ āĻĢāϞāĻžāĻĢāϞāĨ¤

āĻāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ›āĻŋāϞ? āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ msg_id āϰāĻŋāĻĒā§āϞ⧇ āφāĻ•ā§āϰāĻŽāĻŖ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻāĻ•āϟāĻŋ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ, āĻāϟāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻ…āύāĻ¨ā§āϝ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻĢāĻžāĻ‚āĻļāύ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āϭ⧁āϞāĨ¤ āĻ…āϤāĻāĻŦ, āĻŦāĻ°ā§āϤāĻŽāĻžāύ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϕ⧇ āĻŽā§ŒāϞāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻž āĻ•āϰ⧇ (āϝāĻ–āύ āφāĻĒāĻĄā§‡āϟ āĻ¸ā§āĻŸā§āϰ⧀āĻŽ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻāϟāĻŋ āĻĒā§‹āĻ¸ā§āĻŸā§‡āϰ āĻāχ āϏāĻŋāϰāĻŋāĻœā§‡āϰ āĻ…āĻ¨ā§āϝ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻšā§āϚ-āĻ¸ā§āϤāϰ⧇āϰ API āĻŦāĻŋāώāϝāĻŧ), āĻāĻ•āϜāύ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇:

  1. āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ TCP āϏāĻ‚āϝ⧋āĻ— āϧāĻžāϰāĻŖāĻ•āĻžāϰ⧀ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦ āύ⧇āϝāĻŧ - āϝāĻĻāĻŋ āĻāϟāĻŋ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āĻĒāĻĄāĻŧ⧇ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻ¸ā§āĻŦā§€āĻ•āĻžāϰ āĻ•āϰ⧁āύ, āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰ⧁āύ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĢ⧇āϰāϤ āĻĻāĻŋāύ, āϕ⧋āύ āĻ•ā§āώāϤāĻŋ āĻšāĻŦ⧇ āύāĻžāĨ¤ āϤāĻžāϰāĻĒāϰ āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖāϟāĻŋ āφāχāĻĄāĻŋāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϭ⧇āĻ•ā§āϟāϰ āύāϝāĻŧ, āϤāĻŦ⧇ āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ "āĻļ⧇āώ āĻĒā§āϰāĻžāĻĒā§āϤ seq_no" - āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž, āϝ⧇āĻŽāύ TCP (āĻĻ⧁āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž - āφāĻĒāύāĻžāϰ seq āĻāĻŦāĻ‚ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāĻ“āϝāĻŧāĻž)āĨ¤ āφāĻŽāϰāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āĻ…āϧāĻŋāĻŦ⧇āĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĨāĻžāĻ•āĻŋ, āϤāĻžāχ āύāĻž?
  2. āϰāĻŋāĻĒā§āϞ⧇ āφāĻ•ā§āϰāĻŽāĻŖ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ⧇āϰ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āĻāĻ•āϟāĻŋ āϞāĻž āύāύāϏ⧇āĨ¤ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇ āύāĻžāĨ¤ āϝāĻĨ⧇āĻˇā§āϟ āĻāĻŦāĻ‚ uint32 - āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŦāĻŖ āĻ…āĻ¨ā§āϤāϤ āĻĒā§āϰāϤāĻŋ āĻ…āĻ°ā§āϧ⧇āĻ• āĻĻāĻŋāύ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϝāĻŧ, āφāĻŽāϰāĻž āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻŽāϝāĻŧ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻž āĻ…āĻ‚āĻļ⧇āϰ āϞ⧋-āĻ…āĻ°ā§āĻĄāĻžāϰ āĻŦāĻŋāϟāϗ⧁āϞāĻŋāϤ⧇ 16 āĻŦāĻŋāϟ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻŦāĻžāĻ•āĻŋāϗ⧁āϞāĻŋ - āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āĻ­āĻ—ā§āύāĻžāĻ‚āĻļ⧇ (āĻāĻ–āύāĻ•āĻžāϰ āĻŽāϤ⧋)āĨ¤
  3. āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ msg_id āĻŽā§‹āĻŸā§‡āĻ“ - āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋāϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰāĻžāϰ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇, āĻĒā§āϰāĻĨāĻŽāϤ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āφāχāĻĄāĻŋ āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϤ, āϏ⧇āĻļāύ āφāχāĻĄāĻŋ, āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ⧎ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€, āĻ…āύ⧁āϰ⧋āϧ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āϜāĻŋāύāĻŋāϏāχ āϝāĻĨ⧇āĻˇā§āϟ seq_no.

āĻāϟāĻŋāĻ“ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻĢāϞ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āύāϝāĻŧ; āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ°ā§āϝāĻžāĻ¨ā§āĻĄāĻŽ āĻāĻ•āϟāĻŋ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāĻ āĻžāύ⧋āϰ āϏāĻŽāϝāĻŧ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇⧎ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϟāĻŋāϕ⧇ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āĻĨ⧇āϕ⧇ āĻĒāϰāĻŽ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒ⧁āύāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āϰāĻž āĻ­āĻžāϞ, āϤāĻŦ⧇ āĻāϟāĻŋ āĻ…āĻ¨ā§āϝ āĻ…āĻ‚āĻļ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāώāϝāĻŧ, āĻāχ āĻĒā§‹āĻ¸ā§āϟāϟāĻŋ āύāϝāĻŧāĨ¤

āĻāĻĒāĻŋāφāχ?

āϤāĻž-āĻĻāĻžāĻŽ! āϏ⧁āϤāϰāĻžāĻ‚, āĻŦā§āϝāĻĨāĻž āĻāĻŦāĻ‚ āĻ•ā§āϰāĻžāĻšā§‡ āĻ­āϰāĻž āĻĒāĻĨ⧇āϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āϏāĻ‚āĻ—ā§āϰāĻžāĻŽ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻŽāϰāĻž āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝ⧇ āϕ⧋āύāĻ“ āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāϤ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋāϰ āϕ⧋āύāĻ“ āωāĻ¤ā§āϤāϰ āĻĒ⧇āϤ⧇ āĻāĻŦāĻ‚ āϏ⧇āχāϏāĻžāĻĨ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āφāĻĒāĻĄā§‡āϟ āĻĒ⧇āϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ (āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āύāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āύāĻŋāĻœā§‡āχ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻžāĻ āĻžāϝāĻŧ, PUSH āĻāϰ āĻŽāϤ⧋, āϝāĻĻāĻŋ āϕ⧇āω āĻāχāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšāϝāĻŧ)āĨ¤

āĻŽāύ⧋āϝ⧋āĻ—, āĻāĻ–āύ āύāĻŋāĻŦāĻ¨ā§āϧ⧇ āĻĒāĻžāĻ°ā§āϞ⧇āϰ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻĨāĻžāĻ•āĻŦ⧇! (āϝāĻžāϰāĻž āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āύāϝāĻŧ āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ, āφāĻļā§€āĻ°ā§āĻŦāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āϝ⧁āĻ•ā§āϤāĻŋāϟāĻŋ āĻšāϞ āĻŦāĻ¸ā§āϤ⧁āϰ āĻĄā§‡āϟāĻž āĻ•āĻžāĻ āĻžāĻŽā§‹, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϟāĻŋ āĻšāϞ āĻāϰ āĻļā§āϰ⧇āĻŖā§€):

2019.10.24 12:00:51 $1 = {
  'cb' => 'TeleUpd::__ANON__',
  'out' => bless( {
    'filter' => bless( {}, 'Telegram::ChannelMessagesFilterEmpty' ),
    'channel' => bless( {
      'access_hash' => '-6698103710539760874',
      'channel_id' => '1380524958'
    }, 'Telegram::InputPeerChannel' ),
    'pts' => '158503',
    'flags' => 0,
    'limit' => 0
  }, 'Telegram::Updates::GetChannelDifference' ),
  'req_id' => '6751291954012037292'
};

2019.10.24 12:00:51 $1 = {
  'in' => bless( {
    'req_msg_id' => '6751291954012037292',
    'result' => bless( {
      'pts' => 158508,
      'flags' => 3,
      'final' => 1,
      'new_messages' => [],
      'users' => [],
      'chats' => [
        bless( {
          'title' => 'ĐĨ҃ĐģиĐŊĐžĐŧиĐēа',
          'username' => 'hoolinomics',
          'flags' => 8288,
          'id' => 1380524958,
          'access_hash' => '-6698103710539760874',
          'broadcast' => 1,
          'version' => 0,
          'photo' => bless( {
            'photo_small' => bless( {
              'volume_id' => 246933270,
              'file_reference' => '
              'secret' => '1854156056801727328',
              'local_id' => 228648,
              'dc_id' => 2
            }, 'Telegram::FileLocation' ),
            'photo_big' => bless( {
              'dc_id' => 2,
              'local_id' => 228650,
              'file_reference' => '
              'secret' => '1275570353387113110',
              'volume_id' => 246933270
            }, 'Telegram::FileLocation' )
          }, 'Telegram::ChatPhoto' ),
          'date' => 1531221081
        }, 'Telegram::Channel' )
      ],
      'timeout' => 300,
      'other_updates' => [
        bless( {
          'pts_count' => 0,
          'message' => bless( {
            'post' => 1,
            'id' => 852,
            'flags' => 50368,
            'views' => 8013,
            'entities' => [
              bless( {
                'length' => 20,
                'offset' => 0
              }, 'Telegram::MessageEntityBold' ),
              bless( {
                'length' => 18,
                'offset' => 480,
                'url' => 'https://alexeymarkov.livejournal.com/[url_Đ˛Ņ‹Ņ€ĐĩСаĐŊ].html'
              }, 'Telegram::MessageEntityTextUrl' )
            ],
            'reply_markup' => bless( {
              'rows' => [
                bless( {
                  'buttons' => [
                    bless( {
                      'text' => '???? 165',
                      'data' => 'send_reaction_0'
                    }, 'Telegram::KeyboardButtonCallback' ),
                    bless( {
                      'data' => 'send_reaction_1',
                      'text' => '???? 9'
                    }, 'Telegram::KeyboardButtonCallback' )
                  ]
                }, 'Telegram::KeyboardButtonRow' )
              ]
            }, 'Telegram::ReplyInlineMarkup' ),
            'message' => 'А Đ˛ĐžŅ‚ и ĐŊĐžĐ˛Đ°Ņ ĐēĐŊĐ¸ĐŗĐ°! 
// [Ņ‚ĐĩĐēҁ҂ ŅĐžĐžĐąŅ‰ĐĩĐŊĐ¸Ņ Đ˛Ņ‹Ņ€ĐĩСаĐŊ Ņ‡Ņ‚ĐžĐą ĐŊĐĩ ĐŊĐ°Ņ€ŅƒŅˆĐ°Ņ‚ŅŒ ĐŋŅ€Đ°Đ˛Đ¸Đģ ĐĨĐ°ĐąŅ€Đ° Đž Ņ€ĐĩĐēĐģаĐŧĐĩ]
 ĐŊаĐŋĐĩŅ‡Đ°Ņ‚Đ°ŅŽ.',
            'to_id' => bless( {
              'channel_id' => 1380524958
            }, 'Telegram::PeerChannel' ),
            'date' => 1571724559,
            'edit_date' => 1571907562
          }, 'Telegram::Message' ),
          'pts' => 158508
        }, 'Telegram::UpdateEditChannelMessage' ),
        bless( {
          'pts' => 158508,
          'message' => bless( {
            'edit_date' => 1571907589,
            'to_id' => bless( {
              'channel_id' => 1380524958
            }, 'Telegram::PeerChannel' ),
            'date' => 1571807301,
            'message' => 'ĐŸĐžŅ‡ĐĩĐŧ҃ Đ’Ņ‹ ŅŅ‡Đ¸Ņ‚Đ°ĐĩŅ‚Đĩ Facebook ĐŋĐģĐžŅ…ĐžĐš ĐēĐžĐŧĐŋаĐŊиĐĩĐš? МоĐļĐĩŅ‚Đĩ ĐŋŅ€ĐžĐēĐžĐŧĐŧĐĩĐŊŅ‚Đ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ? По-ĐŧĐžĐĩĐŧ҃, ŅŅ‚Đž ŅˆĐ¸ĐēĐ°Ņ€ĐŊĐ°Ņ ĐēĐžĐŧĐŋаĐŊĐ¸Ņ. БĐĩС Đ´ĐžĐģĐŗĐžĐ˛, ҁ Ņ…ĐžŅ€ĐžŅˆĐĩĐš ĐŋŅ€Đ¸ĐąŅ‹ĐģŅŒŅŽ, а ĐĩҁĐģи Ņ€ĐĩŅˆĐ°Ņ‚ Đ´Đ¸Đ˛Ņ‹ ĐŋĐģĐ°Ņ‚Đ¸Ņ‚ŅŒ, Ņ‚Đž и Đĩ҉Đĩ ĐŧĐžĐŗŅƒŅ‚ ĐŊĐĩŅ…Đ¸ĐģĐž ĐŋĐžĐ´ĐžŅ€ĐžĐļĐ°Ņ‚ŅŒ.

ДĐģŅ ĐŧĐĩĐŊŅ ĐžŅ‚Đ˛ĐĩŅ‚ ŅĐžĐ˛ĐĩŅ€ŅˆĐĩĐŊĐŊĐž ĐžŅ‡ĐĩвидĐĩĐŊ: ĐŋĐžŅ‚ĐžĐŧ҃ Ņ‡Ņ‚Đž Facebook Đ´ĐĩĐģаĐĩŅ‚ ҃ĐļĐ°ŅĐŊŅ‹Đš ĐŋĐž ĐēĐ°Ņ‡ĐĩŅŅ‚Đ˛Ņƒ ĐŋŅ€ĐžĐ´ŅƒĐēŅ‚. Да, ҃ ĐŊĐĩĐŗĐž ĐŧĐžĐŊĐžĐŋĐžĐģҌĐŊĐžĐĩ ĐŋĐžĐģĐžĐļĐĩĐŊиĐĩ и да, иĐŧ ĐŋĐžĐģŅŒĐˇŅƒĐĩŅ‚ŅŅ ĐžĐŗŅ€ĐžĐŧĐŊĐžĐĩ ĐēĐžĐģĐ¸Ņ‡ĐĩŅŅ‚Đ˛Đž ĐģŅŽĐ´ĐĩĐš. Но ĐŧĐ¸Ņ€ ĐŊĐĩ ŅŅ‚ĐžĐ¸Ņ‚ ĐŊа ĐŧĐĩҁ҂Đĩ. ĐšĐžĐŗĐ´Đ°-Ņ‚Đž вĐģадĐĩĐģŅŒŅ†Đ°Đŧ НоĐēии ĐąŅ‹ĐģĐž ҁĐŧĐĩ҈ĐŊĐž ĐžŅ‚ ĐŋĐĩŅ€Đ˛ĐžĐŗĐž ĐĐšŅ„ĐžĐŊа. ОĐŊи Đ´ŅƒĐŧаĐģи, Ņ‡Ņ‚Đž ĐģŅƒŅ‡ŅˆĐĩ НоĐēии ĐŊĐ¸Ņ‡ĐĩĐŗĐž ĐąŅ‹Ņ‚ŅŒ ĐŊĐĩ ĐŧĐžĐļĐĩŅ‚ и ĐžĐŊа ĐŊĐ°Đ˛ŅĐĩĐŗĐ´Đ° ĐžŅŅ‚Đ°ĐŊĐĩŅ‚ŅŅ ŅĐ°ĐŧŅ‹Đŧ ŅƒĐ´ĐžĐąĐŊŅ‹Đŧ, ĐēŅ€Đ°ŅĐ¸Đ˛Ņ‹Đŧ и Ņ‚Đ˛Ņ‘Ņ€Đ´Ņ‹Đŧ Ņ‚ĐĩĐģĐĩŅ„ĐžĐŊĐžĐŧ - и Đ´ĐžĐģŅ ҀҋĐŊĐēа ŅŅ‚Đž ĐēŅ€Đ°ŅĐŊĐžŅ€ĐĩŅ‡Đ¸Đ˛Đž Đ´ĐĩĐŧĐžĐŊŅŅ‚Ņ€Đ¸Ņ€ĐžĐ˛Đ°Đģа. ĐĸĐĩĐŋĐĩŅ€ŅŒ иĐŧ ĐŊĐĩ ҁĐŧĐĩ҈ĐŊĐž.

КоĐŊĐĩ҇ĐŊĐž, Ņ€ĐĩĐŋŅ‚Đ¸ĐģĐžĐ¸Đ´Ņ‹ ŅĐžĐŋŅ€ĐžŅ‚Đ¸Đ˛ĐģŅŅŽŅ‚ŅŅ ĐŊаĐŋĐžŅ€Ņƒ ĐŧĐžĐģĐžĐ´Ņ‹Ņ… ĐŗĐĩĐŊиĐĩв: Ņ‚Đ°Đē ĐĻ҃ĐēĐĩŅ€ĐąĐĩŅ€ĐŗĐžĐŧ ĐąŅ‹Đģ ĐŋĐžĐļŅ€Đ°ĐŊ Whatsapp, ĐŋĐžŅ‚ĐžĐŧ Instagram. Но Đ˛ŅŅ‘ иĐŧ ĐŊĐĩ ĐŋĐžĐļŅ€Đ°Ņ‚ŅŒ, ĐŸĐ°ŅˆĐ° Đ”ŅƒŅ€ĐžĐ˛ ĐŊĐĩ ĐŋŅ€ĐžĐ´Đ°Ņ‘Ņ‚ŅŅ!

ĐĸаĐē ĐąŅƒĐ´ĐĩŅ‚ и ҁ ФĐĩĐšŅĐąŅƒĐēĐžĐŧ. НĐĩĐģŅŒĐˇŅ Đ˛ŅŅ‘ Đ˛Ņ€ĐĩĐŧŅ Đ´ĐĩĐģĐ°Ņ‚ŅŒ ĐŗĐžĐ˛ĐŊĐž. ĐšŅ‚Đž-Ņ‚Đž ĐēĐžĐŗĐ´Đ°-Ņ‚Đž ŅĐ´ĐĩĐģаĐĩŅ‚ Ņ…ĐžŅ€ĐžŅˆĐ¸Đš ĐŋŅ€ĐžĐ´ŅƒĐēŅ‚, ĐēŅƒĐ´Đ° Đ˛ŅŅ‘ и ŅƒĐšĐ´ŅƒŅ‚.

#ŅĐžŅ†ŅĐĩŅ‚Đ¸ #facebook #аĐēŅ†Đ¸Đ¸ #Ņ€ĐĩĐŋŅ‚Đ¸ĐģĐžĐ¸Đ´Ņ‹',
            'reply_markup' => bless( {
              'rows' => [
                bless( {
                  'buttons' => [
                    bless( {
                      'data' => 'send_reaction_0',
                      'text' => '???? 452'
                    }, 'Telegram::KeyboardButtonCallback' ),
                    bless( {
                      'text' => '???? 21',
                      'data' => 'send_reaction_1'
                    }, 'Telegram::KeyboardButtonCallback' )
                  ]
                }, 'Telegram::KeyboardButtonRow' )
              ]
            }, 'Telegram::ReplyInlineMarkup' ),
            'entities' => [
              bless( {
                'length' => 199,
                'offset' => 0
              }, 'Telegram::MessageEntityBold' ),
              bless( {
                'length' => 8,
                'offset' => 919
              }, 'Telegram::MessageEntityHashtag' ),
              bless( {
                'offset' => 928,
                'length' => 9
              }, 'Telegram::MessageEntityHashtag' ),
              bless( {
                'length' => 6,
                'offset' => 938
              }, 'Telegram::MessageEntityHashtag' ),
              bless( {
                'length' => 11,
                'offset' => 945
              }, 'Telegram::MessageEntityHashtag' )
            ],
            'views' => 6964,
            'flags' => 50368,
            'id' => 854,
            'post' => 1
          }, 'Telegram::Message' ),
          'pts_count' => 0
        }, 'Telegram::UpdateEditChannelMessage' ),
        bless( {
          'message' => bless( {
            'reply_markup' => bless( {
              'rows' => [
                bless( {
                  'buttons' => [
                    bless( {
                      'data' => 'send_reaction_0',
                      'text' => '???? 213'
                    }, 'Telegram::KeyboardButtonCallback' ),
                    bless( {
                      'data' => 'send_reaction_1',
                      'text' => '???? 8'
                    }, 'Telegram::KeyboardButtonCallback' )
                  ]
                }, 'Telegram::KeyboardButtonRow' )
              ]
            }, 'Telegram::ReplyInlineMarkup' ),
            'views' => 2940,
            'entities' => [
              bless( {
                'length' => 609,
                'offset' => 348
              }, 'Telegram::MessageEntityItalic' )
            ],
            'flags' => 50368,
            'post' => 1,
            'id' => 857,
            'edit_date' => 1571907636,
            'date' => 1571902479,
            'to_id' => bless( {
              'channel_id' => 1380524958
            }, 'Telegram::PeerChannel' ),
            'message' => 'ĐŸĐžŅŅ‚ ĐŋŅ€Đž 1ĐĄ Đ˛Ņ‹ĐˇĐ˛Đ°Đģ ĐąŅƒŅ€ĐŊŅƒŅŽ ĐŋĐžĐģĐĩĐŧиĐē҃. ЧĐĩĐģОвĐĩĐē 10 (видиĐŧĐž, 1ҁ-ĐŋŅ€ĐžĐŗŅ€Đ°ĐŧĐŧĐ¸ŅŅ‚ĐžĐ˛) ĐĩдиĐŊĐžĐ´ŅƒŅˆĐŊĐž ĐŊаĐŋĐ¸ŅĐ°Đģи:
// [Ņ‚ĐĩĐēҁ҂ ŅĐžĐžĐąŅ‰ĐĩĐŊĐ¸Ņ Đ˛Ņ‹Ņ€ĐĩСаĐŊ Ņ‡Ņ‚ĐžĐą ĐŊĐĩ ĐŊĐ°Ņ€ŅƒŅˆĐ°Ņ‚ŅŒ ĐŋŅ€Đ°Đ˛Đ¸Đģ ĐĨĐ°ĐąŅ€Đ° Đž Ņ€ĐĩĐēĐģаĐŧĐĩ]

Đ¯ ĐąŅ‹ дОйавиĐģ, Ņ‡Ņ‚Đž ĐąĐģĐĩŅŅ‚ŅŅ‰Đ°Ņ ҃ 1ĐĄ Đ´Đ¸ŅŅ‚Ņ€Đ¸ĐąŅƒŅ†Đ¸Ņ, а ĐŧĐ°Ņ€ĐēĐĩŅ‚Đ¸ĐŊĐŗ... ĐŊ҃, Ņ‚Đ°ĐēĐžĐĩ.'
          }, 'Telegram::Message' ),
          'pts_count' => 0,
          'pts' => 158508
        }, 'Telegram::UpdateEditChannelMessage' ),
        bless( {
          'pts' => 158508,
          'pts_count' => 0,
          'message' => bless( {
            'message' => 'Đ—Đ´Ņ€Đ°Đ˛ŅŅ‚Đ˛ŅƒĐšŅ‚Đĩ, Ņ€Đ°ŅŅĐēаĐļĐ¸Ņ‚Đĩ, ĐŋĐžĐļаĐģŅƒĐšŅŅ‚Đ°, ҇ĐĩĐŧ Đ˛Ņ€ĐĩĐ´Đ¸Ņ‚ ŅĐēĐžĐŊĐžĐŧиĐēĐĩ 1ĐĄ?

// [Ņ‚ĐĩĐēҁ҂ ŅĐžĐžĐąŅ‰ĐĩĐŊĐ¸Ņ Đ˛Ņ‹Ņ€ĐĩСаĐŊ Ņ‡Ņ‚ĐžĐą ĐŊĐĩ ĐŊĐ°Ņ€ŅƒŅˆĐ°Ņ‚ŅŒ ĐŋŅ€Đ°Đ˛Đ¸Đģ ĐĨĐ°ĐąŅ€Đ° Đž Ņ€ĐĩĐēĐģаĐŧĐĩ]
#ŅĐžŅ„Ņ‚ #it #ŅĐēĐžĐŊĐžĐŧиĐēа',
            'edit_date' => 1571907650,
            'date' => 1571893707,
            'to_id' => bless( {
              'channel_id' => 1380524958
            }, 'Telegram::PeerChannel' ),
            'flags' => 50368,
            'post' => 1,
            'id' => 856,
            'reply_markup' => bless( {
              'rows' => [
                bless( {
                  'buttons' => [
                    bless( {
                      'data' => 'send_reaction_0',
                      'text' => '???? 360'
                    }, 'Telegram::KeyboardButtonCallback' ),
                    bless( {
                      'data' => 'send_reaction_1',
                      'text' => '???? 32'
                    }, 'Telegram::KeyboardButtonCallback' )
                  ]
                }, 'Telegram::KeyboardButtonRow' )
              ]
            }, 'Telegram::ReplyInlineMarkup' ),
            'views' => 4416,
            'entities' => [
              bless( {
                'offset' => 0,
                'length' => 64
              }, 'Telegram::MessageEntityBold' ),
              bless( {
                'offset' => 1551,
                'length' => 5
              }, 'Telegram::MessageEntityHashtag' ),
              bless( {
                'length' => 3,
                'offset' => 1557
              }, 'Telegram::MessageEntityHashtag' ),
              bless( {
                'offset' => 1561,
                'length' => 10
              }, 'Telegram::MessageEntityHashtag' )
            ]
          }, 'Telegram::Message' )
        }, 'Telegram::UpdateEditChannelMessage' )
      ]
    }, 'Telegram::Updates::ChannelDifference' )
  }, 'MTProto::RpcResult' )
};

2019.10.24 12:00:51 $1 = {
  'in' => bless( {
    'update' => bless( {
      'user_id' => 2507460,
      'status' => bless( {
        'was_online' => 1571907651
      }, 'Telegram::UserStatusOffline' )
    }, 'Telegram::UpdateUserStatus' ),
    'date' => 1571907650
  }, 'Telegram::UpdateShort' )
};

2019.10.24 12:05:46 $1 = {
  'in' => bless( {
    'chats' => [],
    'date' => 1571907946,
    'seq' => 0,
    'updates' => [
      bless( {
        'max_id' => 141719,
        'channel_id' => 1295963795
      }, 'Telegram::UpdateReadChannelInbox' )
    ],
    'users' => []
  }, 'Telegram::Updates' )
};

2019.10.24 13:01:23 $1 = {
  'in' => bless( {
    'server_salt' => '4914425622822907323',
    'unique_id' => '5297282355827493819',
    'first_msg_id' => '6751307555044380692'
  }, 'MTProto::NewSessionCreated' )
};

2019.10.24 13:24:21 $1 = {
  'in' => bless( {
    'chats' => [
      bless( {
        'username' => 'freebsd_ru',
        'version' => 0,
        'flags' => 5440,
        'title' => 'freebsd_ru',
        'min' => 1,
        'photo' => bless( {
          'photo_small' => bless( {
            'local_id' => 328733,
            'volume_id' => 235140688,
            'dc_id' => 2,
            'file_reference' => '
            'secret' => '4426006807282303416'
          }, 'Telegram::FileLocation' ),
          'photo_big' => bless( {
            'dc_id' => 2,
            'file_reference' => '
            'volume_id' => 235140688,
            'local_id' => 328735,
            'secret' => '71251192991540083'
          }, 'Telegram::FileLocation' )
        }, 'Telegram::ChatPhoto' ),
        'date' => 1461248502,
        'id' => 1038300508,
        'democracy' => 1,
        'megagroup' => 1
      }, 'Telegram::Channel' )
    ],
    'users' => [
      bless( {
        'last_name' => 'Panov',
        'flags' => 1048646,
        'min' => 1,
        'id' => 82234609,
        'status' => bless( {}, 'Telegram::UserStatusRecently' ),
        'first_name' => 'Dima'
      }, 'Telegram::User' )
    ],
    'seq' => 0,
    'date' => 1571912647,
    'updates' => [
      bless( {
        'pts' => 137596,
        'message' => bless( {
          'flags' => 256,
          'message' => 'ĐĄĐžĐˇĐ´Đ°Ņ‚ŅŒ Đ´ĐļĐĩĐšĐģ ҁ иĐŧĐĩĐŊĐĩĐŧ ĐŋĐžĐēĐžŅ€ĐžŅ‡Đĩ ??',
          'to_id' => bless( {
            'channel_id' => 1038300508
          }, 'Telegram::PeerChannel' ),
          'id' => 119634,
          'date' => 1571912647,
          'from_id' => 82234609
        }, 'Telegram::Message' ),
        'pts_count' => 1
      }, 'Telegram::UpdateNewChannelMessage' )
    ]
  }, 'Telegram::Updates' )
};

āĻšā§āϝāĻžāρ, āωāĻĻā§āĻĻ⧇āĻļā§āϝāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒāϝāĻŧāϞāĻžāϰ āύāϝāĻŧ - āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻāĻ–āύāĻ“ āύāĻž āĻĒāĻĄāĻŧ⧇ āĻĨāĻžāϕ⧇āύ āϤāĻŦ⧇ āĻāĻ—āĻŋāϝāĻŧ⧇ āϝāĻžāύ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•āϰ⧁āύ!

āĻ“āĻš, āĻ“āϝāĻŧāĻžāχ~~... āĻāϟāĻž āϕ⧇āĻŽāύ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇? āϖ⧁āĻŦ āĻĒāϰāĻŋāϚāĻŋāϤ āĻ•āĻŋāϛ⧁... āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻāϟāĻŋ JSON-āĻāϰ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻ“āϝāĻŧ⧇āĻŦ API-āĻāϰ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ, āĻŦā§āϝāϤ⧀āϤ āĻ•ā§āϞāĻžāϏāϗ⧁āϞāĻŋāĻ“ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇?...

āϤāĻžāĻšāϞ⧇ āĻāχāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇... āĻ•āĻŽāϰ⧇āĻĄāϰāĻž, āĻāϟāĻž āĻ•āĻŋāϏ⧇āϰ?... āĻāϤ āĻĒā§āϰāĻšā§‡āĻˇā§āϟāĻž - āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝ⧇āĻ–āĻžāύ⧇ āĻ“āϝāĻŧ⧇āĻŦ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϰāĻž āϏ⧇āĻ–āĻžāύ⧇ āĻŦāĻŋāĻļā§āϰāĻžāĻŽ āύāĻŋāϤ⧇ āĻĨāĻžāĻŽāϞāĻžāĻŽāĨ¤ āϏāĻŦ⧇āĻŽāĻžāĻ¤ā§āϰ āĻļ⧁āϰ⧁ āĻšāχāϤ⧇āϛ⧇?..HTTPS āĻāϰ āωāĻĒāϰ JSON āĻ•āĻŋ āϏāĻšāϜ āĻšāĻŦ⧇ āύāĻž?! āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ⧇ āφāĻŽāϰāĻž āϕ⧀ āĻĒ⧇āϞāĻžāĻŽ? āĻĒā§āϰāĻšā§‡āĻˇā§āϟāĻž āĻāϟāĻž āĻŽā§‚āĻ˛ā§āϝ āĻ›āĻŋāϞ?

āφāϏ⧁āύ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āĻ•āϰāĻŋ āϝ⧇ TL+MTProto āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧀ āĻĻāĻŋāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āϕ⧀ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āϏāĻŽā§āĻ­āĻŦāĨ¤ āĻ­āĻžāϞ, HTTP, āϝāĻž āĻ…āύ⧁āϰ⧋āϧ-āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŽāĻĄā§‡āϞ⧇āϰ āωāĻĒāϰ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ–āĻžāϰāĻžāĻĒ āĻĢāĻŋāϟ, āϤāĻŦ⧇ āĻ…āĻ¨ā§āϤāϤ āϟāĻŋāĻāϞāĻāϏ⧇āϰ āωāĻĒāϰ⧇ āĻ•āĻŋāϛ⧁?

āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύāĨ¤ āĻāχ āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻĻ⧇āϖ⧇, JSON āĻāϰ āĻŽāϤ⧋, āφāĻŽāĻžāϰ āĻŽāύ⧇ āφāϛ⧇ āĻāϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻ­āĻžāĻ°ā§āϏāύ āφāϛ⧇āĨ¤ āφāϏ⧁āύ MsgPack āϕ⧇ āĻ…āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤāĻ­āĻžāĻŦ⧇ āĻāĻ•ā§āϏāĻŸā§‡āύāϏāĻŋāĻŦāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāĻŋ, āϤāĻŦ⧇ āϏ⧇āĻ–āĻžāύ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, CBOR - āϝāĻžāχāĻšā§‹āĻ•, āĻāĻ•āϟāĻŋ āĻŽāĻžāύ āĻŦāĻ°ā§āĻŖāĻŋāϤ āφāϛ⧇ RFC 7049. āĻāϟāĻŋ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻŸā§āϝāĻžāĻ—, āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻšāĻŋāϏāĻžāĻŦ⧇, āĻāĻŦāĻ‚ āĻŽāĻ§ā§āϝ⧇ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻŽāĻžāύāϏāĻŽā§āĻŽāϤ āϏ⧇āĻ–āĻžāύ⧇:

  • 25 + 256 - āϞāĻžāχāύ āύāĻŽā§āĻŦāϰ⧇āϰ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āϏāĻš āĻŦāĻžāϰāĻŦāĻžāϰ āϞāĻžāχāύ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž, āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āϏāĻ¸ā§āϤāĻž āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ āĻĒāĻĻā§āϧāϤāĻŋ
  • 26 - āĻ•ā§āϞāĻžāϏ⧇āϰ āύāĻžāĻŽ āĻāĻŦāĻ‚ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āϏāĻš āĻ•ā§āϰāĻŽāĻŋāĻ• āĻĒāĻžāĻ°ā§āϞ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ
  • 27 - āϟāĻžāχāĻĒ āύāĻžāĻŽ āĻāĻŦāĻ‚ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āϏāĻš āĻ•ā§āϰāĻŽāĻŋāĻ• āĻ­āĻžāώāĻž-āĻ¸ā§āĻŦāĻžāϧ⧀āύ āĻŦāĻ¸ā§āϤ⧁

āĻ āĻŋāĻ• āφāϛ⧇, āφāĻŽāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĒā§āϝāĻžāĻ•āĻŋāĻ‚ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇ TL āĻāĻŦāĻ‚ CBOR-āĻ āĻāĻ•āχ āĻĄā§‡āϟāĻž āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻĢāϞāĻžāĻĢāϞ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ āĻĨ⧇āϕ⧇ āϕ⧋āĻĨāĻžāĻ“ CBOR āĻāϰ āĻĒāĻ•ā§āώ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇:

cborlen=1039673 tl_len=1095092

āĻāĻŦāĻ‚ āϤāĻžāχ, āωāĻĒāϏāĻ‚āĻšāĻžāϰ: āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ• āĻĻāĻ•ā§āώāϤāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāχāĻœā§‡āĻļāύ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āĻŦāĻž āĻ…āϜāĻžāύāĻž āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϰ āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻžāĻĒ⧇āĻ•ā§āώ⧇ āύāϝāĻŧ āĻāĻŽāύ āϝāĻĨ⧇āĻˇā§āϟ āϏāĻšāϜ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āĻĻā§āϰ⧁āϤ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ. āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻĒ⧁āύāσāϏāĻ‚āϝ⧋āϗ⧇āϰ āĻĒāϰ⧇ āĻļā§‚āĻ¨ā§āϝ RTT (āϝāĻ–āύ āϕ⧀āϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻāĻ•āĻŦāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇) - āĻĒā§āϰāĻĨāĻŽ MTProto āĻŦāĻžāĻ°ā§āϤāĻž āĻĨ⧇āϕ⧇ āĻĒā§āϰāϝ⧋āĻœā§āϝ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āĻŋāϛ⧁ āϏāĻ‚āϰāĻ•ā§āώāϪ⧇āϰ āϏāĻžāĻĨ⧇ - āĻāĻ•āχ āϞāĻŦāϪ⧇ āφāϘāĻžāϤ āĻ•āϰ⧁āύ, āϏ⧇āĻļāύāϟāĻŋ āĻĒāϚāĻž āĻšāϝāĻŧ āύāĻž āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤ TLS āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧀ āĻ…āĻĢāĻžāϰ āĻ•āϰ⧇? āĻŦāĻŋāώāϝāĻŧ⧇ āωāĻĻā§āϧ⧃āϤāĻŋ:

TLS-āĻ PFS āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, TLS āϏ⧇āĻļāύ⧇āϰ āϟāĻŋāĻ•āĻŋāϟ (RFC 5077) āϕ⧀ āĻĒ⧁āύāϰāĻžāϝāĻŧ āφāϞ⧋āϚāύāĻž āύāĻž āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻŽā§‚āϞ āϤāĻĨā§āϝ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āύāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āϏ⧇āĻļāύ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇āĨ¤ āĻĒā§āϰāĻĨāĻŽ āϏāĻ‚āϝ⧋āĻ— āĻ–ā§‹āϞāĻžāϰ āĻāĻŦāĻ‚ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻžāϛ⧇ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇ (āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ āϟāĻŋāĻ•āĻŋāĻŸā§‡āϰ āφāĻ•āĻžāϰ⧇)āĨ¤ āϤāĻĻāύ⧁āϏāĻžāϰ⧇, āϏāĻ‚āϝ⧋āĻ— āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻšāϞ⧇, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ āϟāĻŋāĻ•āĻŋāϟ āĻĒāĻžāĻ āĻžāϝāĻŧ, āϏ⧇āĻļāύ āϕ⧀ āϏāĻš, āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āϟāĻŋāĻ•āĻŋāϟ āύāĻŋāĻœā§‡āχ āĻāĻ•āϟāĻŋ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϕ⧀ (āϏ⧇āĻļāύ āϟāĻŋāĻ•āĻŋāϟ āϕ⧀) āĻĻāĻŋāϝāĻŧ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āϗ⧁āĻšā§āĻ› āϏāĻŽāĻžāϧāĻžāύ⧇ SSL āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖāĻ•āĻžāϰ⧀ āϏāĻŽāĻ¸ā§āϤ āĻĢā§āϰāĻ¨ā§āϟāĻāĻ¨ā§āĻĄ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•āĨ¤[10]āĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, āĻāĻ•āϟāĻŋ āϏ⧇āĻļāύ āϟāĻŋāĻ•āĻŋāĻŸā§‡āϰ āĻĒā§āϰāĻŦāĻ°ā§āϤāύ PFS āϞāĻ™ā§āϘāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻĻāĻŋ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϕ⧀āϗ⧁āϞāĻŋ āφāĻĒā§‹āϏ āĻ•āϰāĻž āĻšāϝāĻŧ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻ–āύ āϏ⧇āϗ⧁āϞāĻŋ āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ (OpenSSL, nginx, Apache āĻāϗ⧁āϞāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻĒ⧁āϰ⧋ āϏāĻŽāϝāĻŧāĻ•āĻžāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇; āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āϏāĻžāχāϟāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϝāĻŧ⧇āĻ• āϘāĻ¨ā§āϟāĻžāϰ āϜāĻ¨ā§āϝ āϚāĻžāĻŦāĻŋ, āĻĻāĻŋāύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ)āĨ¤

āĻāĻ–āĻžāύ⧇ RTT āĻļā§‚āĻ¨ā§āϝ āύāϝāĻŧ, āφāĻĒāύāĻžāϕ⧇ āĻ…āĻ¨ā§āϤāϤ ClientHello āĻāĻŦāĻ‚ ServerHello āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϤāĻžāϰāĻĒāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĢāĻŋāύāĻŋāĻļāĻĄ āϏāĻš āĻĄā§‡āϟāĻž āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāύ⧇ āϰāĻžāĻ–āĻž āωāϚāĻŋāϤ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻ“āϝāĻŧ⧇āĻŦ āύ⧇āχ, āϤāĻžāϰ āύāϤ⧁āύ āĻ–ā§‹āϞāĻž āϏāĻ‚āϝ⧋āĻ—āϗ⧁āϞāĻŋāϰ āϗ⧁āĻšā§āĻ› āϏāĻš, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āĻŽā§‡āϏ⧇āĻžā§āϜāĻžāϰ, āϝāĻžāϰ āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻāĻ• āĻāĻŦāĻ‚ āĻ•āĻŽ āĻŦāĻž āĻŦ⧇āĻļāĻŋ āĻĻā§€āĻ°ā§āϘāĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻšāϝāĻŧ, āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧃āĻˇā§āĻ āĻžāϗ⧁āϞāĻŋāϤ⧇ āĻ…āĻĒ⧇āĻ•ā§āώāĻžāĻ•ā§ƒāϤ āϛ⧋āϟ āĻ…āύ⧁āϰ⧋āϧ - āϏāĻŦāĻ•āĻŋāϛ⧁āχ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϞ⧇āĻ•ā§āϏāĻĄ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖāĻ­āĻžāĻŦ⧇ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻāϟāĻŋ āĻŦ⧇āĻļ āĻ—ā§āϰāĻšāĻŖāϝ⧋āĻ—ā§āϝ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϏāĻ¤ā§āϝāĻŋāχ āĻāĻ•āϟāĻŋ āĻ–āĻžāϰāĻžāĻĒ āĻĒāĻžāϤāĻžāϞ āϰ⧇āϞ āĻŦāĻŋāĻ­āĻžāϗ⧇ āύāĻž āφāϏāĻŋāĨ¤

āĻ…āĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āϭ⧁āϞ⧇ āϗ⧇āϛ⧇āύ? āĻ•āĻŽā§‡āĻ¨ā§āĻŸā§‡ āϞāĻŋāϖ⧁āύāĨ¤

āϚāϞāĻŦ⧇!

āĻĒā§‹āĻ¸ā§āϟāϗ⧁āϞāĻŋāϰ āĻāχ āϏāĻŋāϰāĻŋāĻœā§‡āϰ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ⧇ āφāĻŽāϰāĻž āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āύāϝāĻŧ, āϤāĻŦ⧇ āϏāĻžāĻ‚āĻ—āĻ āύāĻŋāĻ• āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻŦ - āĻĒāĻĻā§āϧāϤāĻŋ, āφāĻĻāĻ°ā§āĻļ, āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĒā§āϰāϤāĻŋ āĻŽāύ⧋āĻ­āĻžāĻŦ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤ āϤāĻŦ⧇, āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āϤāĻĨā§āϝ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āϝāĻž āĻāĻ–āĻžāύ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āϤ⧃āϤ⧀āϝāĻŧ āĻ…āĻ‚āĻļ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āωāĻĒāĻžāĻĻāĻžāύ / āωāĻ¨ā§āύāϝāĻŧāύ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦ⧇. āφāĻĒāύāĻŋ āĻļāĻŋāĻ–āĻŦ⧇āύ, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇:

  • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāϪ⧇āϰ TL āϏāĻš āĻŽāĻšāĻžāĻŽāĻžāϰ⧀āϰ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āϤāĻž
  • āĻšā§āϝāĻžāύ⧇āϞ āĻāĻŦāĻ‚ āϏ⧁āĻĒāĻžāϰāĻ—ā§āϰ⧁āĻĒ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āϜāĻžāύāĻž āϜāĻŋāύāĻŋāϏ
  • āϕ⧇āύ āĻĄāĻžāϝāĻŧāĻžāϞāĻ— āϰ⧋āĻ¸ā§āϟāĻžāϰ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ–āĻžāϰāĻžāĻĒ
  • āĻĒāϰāĻŽ āĻŦāύāĻžāĻŽ āφāĻĒ⧇āĻ•ā§āώāĻŋāĻ• āĻŦāĻžāĻ°ā§āϤāĻž āĻ āĻŋāĻ•āĻžāύāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇
  • āĻ›āĻŦāĻŋ āĻāĻŦāĻ‚ āĻ›āĻŦāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āĻŋ?
  • āχāĻŽā§‹āϜāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āχāϟāĻžāϞāĻŋāĻ• āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āĻšāĻ¸ā§āϤāĻ•ā§āώ⧇āĻĒ āĻ•āϰ⧇

āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•ā§āϰāĻžāϚ! āϏāĻžāĻĨ⧇ āĻĨāĻžāϕ⧁āύ!

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster