{"id":345355,"date":"2023-02-13T09:00:46","date_gmt":"2023-02-13T09:00:46","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=345355"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=345355","title":{"rendered":"<span>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 Ingenico<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445!<\/p>\n<p>  \u0421\u043a\u0430\u0436\u0438\u0442\u0435: \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u0442\u0435\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u0438\u0435 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u044e \u043a\u0430\u0440\u0442\u0443 \u0435\u0434\u0432\u0430 \u043b\u0438 \u043d\u0435 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e? \u0425\u043e\u0442\u0435\u043b\u0438 \u043b\u0438 \u0432\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0451 \u043f\u043e\u0434 \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432? <br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u2014 \u00ab\u0414\u0430\u00bb, \u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/v6\/h7\/bd\/v6h7bdokqytawnwcdgxfaxza5i8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/v6\/h7\/bd\/v6h7bdokqytawnwcdgxfaxza5i8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f POS-terminal&#8217;\u043e\u0432 \u043f\u043e\u043a\u0440\u044b\u0442\u0430 \u0437\u0430\u0432\u0435\u0441\u043e\u0439 \u0442\u0430\u0439\u043d\u044b, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0435\u0451 \u0440\u0430\u0437\u0432\u0435\u044f\u0442\u044c. \u0412 \u0445\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0430\u0437\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u0442\u0430\u043a\u0438\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u044b. \u0423\u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043a\u0430\u043a \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e.<a name=\"habracut\"><\/a><\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041f\u043e\u0433\u043d\u0430\u043b\u0438!<\/font><\/h2>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u0445 Ingenico \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043e \u043d\u0438\u0445? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0444\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0432\u0435\u043d\u0434\u043e\u0440\u0443 \u0432 \u0432\u0430\u0448\u0435\u043c \u0440\u0435\u0433\u0438\u043e\u043d\u0435 \u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u0435\u0433\u043e \u0442\u0430\u043c. \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0435\u0433\u043e \u043d\u0435\u0442. <\/p>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u043e\u043f\u0430\u0442\u044c, \u0442\u0430\u043a \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u044f Ingenico. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0438\u0445. \u041f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0438 \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0434\u0440\u0435\u0432\u043d\u0435\u0435 \u0441\u0442\u0430\u0440\u044c\u0451, \u0430 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0432 \u0431\u0430\u043d\u043a\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u044e, \u0447\u0442\u043e \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043e\u0434 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0439, \u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0435\u0449\u0451 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0435\u0433\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u043d\u0438\u0436\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u043c\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445 \u0438 \u0438\u0445 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445. \u041e\u0442\u0442\u043e\u0433\u043e \u044d\u0442\u043e \u0438 \u00ab\u043d\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u00bb.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u044d\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, <b>just for fun<\/b> \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0436\u0435 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u043e\u0432 \u043a\u0430\u043a \u044f. \u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u043d\u0435\u0441\u0451\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0443\u043a\u043e\u043a\u043e\u0448\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b, \u0441\u043d\u0435\u0441\u0451\u043d\u043d\u043e\u0435 \u041f\u041e \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u2014 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u043e \u0432\u0430\u043c \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u0443 Ingenico \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 (\u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u044d\u0442\u043e \u00ab\u0410\u0440\u043a\u043e\u043c\u00bb).<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041e\u0431\u0437\u043e\u0440 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/font><\/h2>\n<p>  \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u044e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e, \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0444\u0442 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b Ingenico, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u2014 \u043f\u043e\u0434 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 <b>Telium-2<\/b>. \u0418 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u0414\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u0432\u043e \u0424\u0440\u0430\u043d\u0446\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0442\u0430\u043a\u0430\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u043a\u0430\u043a SAGEM. \u0410\u043a\u0446\u0438\u043e\u043d\u0435\u0440\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0438\u043c\u0435\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043b\u0430 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0440\u044f\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b: \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u0432\u043e\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b, \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u043e\u0432\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0435\u0451 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u0438 \u0438 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u043d\u0435\u0439\u043a\u043e\u0439 SAGEM Monetel \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0438\u0435 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium-1. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u0445 SAGEM \u0431\u044b\u043b\u0430 \u0443\u043f\u0440\u0430\u0437\u0434\u043d\u0435\u043d\u0430, \u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0443 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c Ingenico. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0431\u044b\u043b\u0430 \u0441\u0432\u043e\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, Unicapt32, \u043d\u043e, \u0437\u0430\u043f\u043e\u043b\u0443\u0447\u0438\u0432 Telium-1, \u043e\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u044d\u0442\u043e\u0439, \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0439 \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f Telium-2, \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0430\u0448\u0430 \u0441\u0442\u0430\u0442\u044c\u044f. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0443\u0436\u0435 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Telium TETRA, \u043d\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0442\u044b\u0441\u044f\u0447 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 Telium-2 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0441\u0432\u043e\u044e \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u043f\u0440\u0438\u0451\u043c \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u0438\u0445 \u043a\u0430\u0440\u0442 \u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439. \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u043d\u0430 \u0431\u0430\u0437\u0435 Telium \u043d\u0430\u0434\u0451\u0436\u043d\u044b, \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b, \u0443\u0434\u043e\u0431\u043d\u044b \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b \u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0438 \u044d\u0440\u0433\u043e\u043d\u043e\u043c\u0438\u0447\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0438 \u043c\u0438\u043d\u0443\u0441\u044b, \u043d\u043e \u043e \u043d\u0438\u0445 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 POS-terminal&#8217;\u043e\u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0440\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/j0\/gz\/zf\/j0gzzfygmcholrqxqb5fvq7b0hu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/j0\/gz\/zf\/j0gzzfygmcholrqxqb5fvq7b0hu.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/na\/zs\/ay\/nazsayhewqhdyhpzaufo9fbk6r0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/na\/zs\/ay\/nazsayhewqhdyhpzaufo9fbk6r0.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0421\u0442\u0430\u0440\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Unicapt32: Ingenico 5100 \u0438 Ingenico 7910. \u041c\u043e\u0434\u0435\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435, \u043f\u043e\u0434 7910 \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u043e\u0444\u0442 \u0434\u043b\u044f \u043f\u0440\u0438\u0451\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043e\u0442 \u041e\u0421\u041c\u041f (\u043e\u043d\u0430 \u0436\u0435 Qiwi).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ul\/yx\/40\/ulyx40muea9rjqnc8scdb1jykkq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ul\/yx\/40\/ulyx40muea9rjqnc8scdb1jykkq.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u0438\u043d-\u043f\u0430\u0434 Ingenico 3050. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u043c\u0438 Unicapt32.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/7s\/jd\/7h\/7sjd7h8qptmmtvfmp3i6q5etozi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/7s\/jd\/7h\/7sjd7h8qptmmtvfmp3i6q5etozi.png\"\/><\/p>\n<p>  POS-terminal SAGEM Monetel EFTsmart \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium-1. \u0422\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0445 Ingenico. \u0420\u044f\u0434\u043e\u043c \u043f\u0438\u043d-\u043f\u0430\u0434 PPC30.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/qo\/ux\/sk\/qouxsktchyvspn6mgdxd_z5vz2q.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/qo\/ux\/sk\/qouxsktchyvspn6mgdxd_z5vz2q.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0438\u043d-\u043f\u0430\u0434, SAGEM Monetel PP 30.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/_o\/hj\/fs\/_ohjfs7v76iqepcsy68r9au6q1s.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/_o\/hj\/fs\/_ohjfs7v76iqepcsy68r9au6q1s.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  POS-terminal Ingenico ICT220 A98. ICT220 \u2014 \u0441\u0430\u043c\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0434\u0443\u043c\u0430\u044e, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0432\u0430\u0441 \u043f\u043e-\u043b\u044e\u0431\u043e\u043c\u0443 \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b \u043a\u0430\u0440\u0442\u0443 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u044f ICT250 \u0441 \u0446\u0432\u0435\u0442\u043d\u044b\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 IPP320\/350 \u2014 \u043f\u043e \u0441\u0443\u0442\u0438 \u0442\u043e\u0442 \u0436\u0435 ICT220\/250, \u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0438\u0437\u0432\u043d\u0435 (\u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u0441\u0442\u043e\u044f\u0442 \u043d\u0430 \u043a\u0430\u0441\u0441\u0430\u0445 \u0441\u0443\u043f\u0435\u0440\u043c\u0430\u0440\u043a\u0435\u0442\u043e\u0432). <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hx\/4y\/oo\/hx4yooitwley58ugduvfupgmyse.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/hx\/4y\/oo\/hx4yooitwley58ugduvfupgmyse.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  ICT220 C98. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0430, \u043e\u0441\u043d\u0430\u0449\u0451\u043d\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041a \u0441\u043b\u043e\u0432\u0443 \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u0438\u043d-\u043f\u0430\u0434\u044b \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0442\u0430\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 IPP220 A98 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 POS-terminal&#8217;\u0435 C98, \u043d\u0443 \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/wd\/ev\/zu\/wdevzul5svmmxtbn7bbxwyej5eu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/wd\/ev\/zu\/wdevzul5svmmxtbn7bbxwyej5eu.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  IPP220. \u041f\u0438\u043d-\u043f\u0430\u0434 \u0434\u043b\u044f \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 ICT220\/250, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043a \u043d\u0435\u043c\u0443 \u043f\u043e USB. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/w6\/fa\/jv\/w6fajvin_4rlqktq_azk7jl3qf8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/w6\/fa\/jv\/w6fajvin_4rlqktq_azk7jl3qf8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  IWL250. \u041f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0441 \u0446\u0432\u0435\u0442\u043d\u044b\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0444\u0435, \u0440\u0435\u0441\u0442\u043e\u0440\u0430\u043d\u0430\u0445, \u0431\u0430\u0440\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u0445. \u0423\u0432\u044b, \u043c\u043e\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0432 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/8v\/cg\/yc\/8vcgycheftgeuz5zn9bo3gguocy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/8v\/cg\/yc\/8vcgycheftgeuz5zn9bo3gguocy.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ry\/qx\/sv\/ryqxsv4ipsjpga5b57nr2g7y41o.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ry\/qx\/sv\/ryqxsv4ipsjpga5b57nr2g7y41o.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  IPA280. \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 Windows CE \u0441 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u043c \u0438 \u043f\u0438\u043d-\u043f\u0430\u0434\u043e\u043c. \u0416\u0435\u043b\u0435\u0437\u043a\u0430 \u043a\u0440\u0430\u0439\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044f \u0434\u0430\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0443 \u043f\u0440\u043e \u043d\u0435\u0451 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/fv\/yj\/eq\/fvyjeqys9clyudhz7aichrwtmgo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/fv\/yj\/eq\/fvyjeqys9clyudhz7aichrwtmgo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/sg\/cu\/rq\/sgcurq8nvhlz7zj9bojcxuiuaeo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/sg\/cu\/rq\/sgcurq8nvhlz7zj9bojcxuiuaeo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  ISMP. \u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 POS-terminal, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u043e\u0439 \u0447\u0435\u0445\u043e\u043b \u0434\u043b\u044f iPhone 4 \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043f\u0438\u043d-\u043f\u0430\u0434\u043e\u043c \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium \u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c \u0448\u0442\u0440\u0438\u0445-\u043a\u043e\u0434\u043e\u0432.<br \/>  \u0418\u0442\u0430\u043a, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Telium-2 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0432\u044b\u0431\u043e\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0437 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0432\u0430\u0448\u0435\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/font><\/h2>\n<p>  \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043d\u0430 ICT220. \u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0444\u0442.<\/p>\n<p>  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0442\u0430\u043a\u0438\u0435: \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 ARM9 (\u043f\u043b\u044e\u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e ARM7 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f), \u043f\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u041e\u0417\u0423 \u0438 Flash (\u043d\u043e \u044d\u0442\u043e \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435). \u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u2014 USB, RS-232, Ethernet, \u043c\u043e\u0434\u0435\u043c, USB-\u0445\u043e\u0441\u0442. <\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0412\u0441\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0441\u0442\u043e\u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0439 \u0435\u0433\u043e \u043f\u043e\u0440\u0447\u0435. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043c\u043e\u0433\u0443\u0442 <u>\u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435 \u0432\u0435\u043d\u0434\u043e\u0440\u0430<\/u> \u0437\u0430 \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0434\u0435\u043d\u044c\u0433\u0438 (\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043f\u0440\u043e\u0449\u0435 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c, \u0447\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f). \u041d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0434\u0430\u043b\u0435\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043c\u043d\u0435 \u0443\u0436\u0435 \u043f\u043e\u043c\u0435\u0440\u0448\u0438\u043c.<\/b> \u041f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 POS-terminal&#8217;\u044b, \u044f \u043f\u0438\u0441\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/703328\/\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hp\/rt\/27\/hprt27malsq11-bpfazjuw2kdzo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/hp\/rt\/27\/hprt27malsq11-bpfazjuw2kdzo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440. \u041e\u043d \u0432 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441 \u043d\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0437\u0430\u043f\u0447\u0430\u0441\u0442\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/_o\/zw\/hv\/_ozwhv8ztqkm9cwbex7zig6tlkw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/_o\/zw\/hv\/_ozwhv8ztqkm9cwbex7zig6tlkw.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430. USB-B \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u0438 USB-A \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. COM-\u043f\u043e\u0440\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d \u043d\u0430 \u0440\u0430\u0437\u044a\u0451\u043c miniUSB (\u043d\u043e \u0441\u0438\u0433\u043d\u0430\u043b \u0442\u0430\u043c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043d\u0435 USB!). \u041f\u043e\u0440\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u0414\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430 <s>\u0438 \u043f\u0440\u0438\u043d\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043a \u043f\u043e\u043a\u0443\u043f\u043a\u0435 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0445 \u0448\u043d\u0443\u0440\u043e\u0432<\/s> \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e 8P8C \u0441\u0442\u043e\u0438\u0442 4P4C, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043a\u0430\u0431\u0435\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0432\u0438\u0442\u044b\u0435 \u043f\u0430\u0440\u044b. \u0421\u043d\u0438\u0437\u0443 \u0441\u043b\u043e\u0442\u044b \u043f\u043e\u0434 SAM-\u043a\u0430\u0440\u0442\u044b \u0438 \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0435 \u0441 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u043a\u0443\u0440\u0441\u0430 \u0440\u0430\u0437\u044a\u0451\u043c\u044b \u043f\u043e\u0434 SIM \u0438 microSD.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ot\/mc\/cd\/otmccdneufhb2db_tlbqoeoibvq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ot\/mc\/cd\/otmccdneufhb2db_tlbqoeoibvq.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/gr\/rx\/cq\/grrxcqd9lp_otonedjljyxqmnqy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/gr\/rx\/cq\/grrxcqd9lp_otonedjljyxqmnqy.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/6q\/ya\/sr\/6qyasrsfbkyaaugmebuqa-nuimo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/6q\/ya\/sr\/6qyasrsfbkyaaugmebuqa-nuimo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/fj\/tx\/dj\/fjtxdjt3_ougneiwbiwjht6n6cg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/fj\/tx\/dj\/fjtxdjt3_ougneiwbiwjht6n6cg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c. \u041d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u043a\u0435 \u043a\u0443\u0447\u0430 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0445 \u0447\u0438\u043f\u043e\u0432. \u041d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d GSM-\u043c\u043e\u0434\u0435\u043c \u043e\u0442 Sagemcom. \u0414\u0438\u0441\u043f\u043b\u0435\u0439 \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 <b>M0412 SHON58<\/b>, \u0433\u0443\u0433\u043b \u0431\u0435\u0437 \u043f\u043e\u043d\u044f\u0442\u0438\u044f, \u0447\u0442\u043e \u0437\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0447\u0442\u043e \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0442\u0430\u043c \u0441\u0442\u043e\u0438\u0442. \u041d\u0430 \u043f\u043b\u0430\u0442\u0435 \u043c\u043e\u0434\u0435\u043c\u0430 \u043d\u0435\u043a\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u043b\u0438\u0442\u0438\u0435\u0432\u043e\u0433\u043e \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u2014 \u044d\u0442\u043e \u0441\u0443\u043f\u0435\u0440\u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440. \u0412 \u0432\u044b\u0441\u0442\u0443\u043f\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0438 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 \u043d\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u043f\u043e\u0440\u0442\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043a\u0430 CR2450. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/e7\/wi\/cd\/e7wicdzo-f2gaic3juaycr2nihg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/e7\/wi\/cd\/e7wicdzo-f2gaic3juaycr2nihg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0410\u043d\u0442\u0435\u043d\u043d\u0430 GSM-\u043c\u043e\u0434\u0435\u043c\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ay\/il\/p2\/ayilp2yc713rh1yduxm1pwyeays.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ay\/il\/p2\/ayilp2yc713rh1yduxm1pwyeays.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041c\u043e\u0434\u0435\u043c, \u0441\u043d\u044f\u0442\u044b\u0439 \u0441 \u043f\u043b\u0430\u0442\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/g5\/rw\/jc\/g5rwjcrumhyqymqp14conf4vgww.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/g5\/rw\/jc\/g5rwjcrumhyqymqp14conf4vgww.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vq\/kz\/tk\/vqkztkotckdpo8omlnfgtmmgnyo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vq\/kz\/tk\/vqkztkotckdpo8omlnfgtmmgnyo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0430. \u0414\u0430\u0432\u043d\u043e \u0441\u0435\u0432\u0448\u0430\u044f \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043a\u0430, \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u0430\u0440\u0442 \u0437\u0430\u043a\u0440\u044b\u0442 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0418\u0437 \u0447\u0438\u043f\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f:<\/p>\n<ul>\n<li>SI3018-FS, SI3056-FS \u2014 \u043c\u043e\u0434\u0435\u043c\u043d\u044b\u0439 \u0447\u0438\u043f\u0441\u0435\u0442<\/li>\n<li>SMsC LAN8700-AEZG \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Fast Ethernet<\/li>\n<li>ZT3223E \u2014 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u0439 RS-232<\/li>\n<li>MONEFT3X SPIIIM 1215 1T6239-1 \u2014 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0439 \u0448\u0438\u0444\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/li>\n<li>WE-MIDCOM 7090-37 GV1217LF1 \u2014 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0440 Ethernet<\/li>\n<li>LB1838 \u2014 \u043d\u0438\u0437\u043a\u043e\u0432\u043e\u043b\u044c\u0442\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0438\u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0428\u0414<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/oa\/yw\/p-\/oaywp-fziropfqueuts9eqwirdo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/oa\/yw\/p-\/oaywp-fziropfqueuts9eqwirdo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041e\u0442\u043a\u043e\u0432\u044b\u0440\u044f\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d. \u0421\u0438\u0434\u0438\u0442 \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0442\u043d\u043e, \u0441\u043d\u044f\u0442\u044c \u0438 \u043d\u0435 \u043f\u043e\u0433\u043d\u0443\u0442\u044c \u043d\u0435 \u0432\u044b\u0448\u043b\u043e. \u041f\u043e\u0434 \u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (\u0442\u043e\u0436\u0435 \u0437\u0430\u043a\u0430\u0437\u043d\u043e\u0439), \u0447\u0438\u043f\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u041f\u0417\u0423. \u041d\u0430 \u0431\u0430\u0437\u0435 \u0447\u0438\u043f\u0441\u0435\u0442\u0430 MONEFT3X \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432\u0441\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium-2.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zc\/cg\/h1\/zccgh1e2ry9spkzaqql8ognmy2i.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zc\/cg\/h1\/zccgh1e2ry9spkzaqql8ognmy2i.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ms\/vp\/fh\/msvpfhxrar9sxxyw2aa8s5aituk.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ms\/vp\/fh\/msvpfhxrar9sxxyw2aa8s5aituk.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vc\/fz\/q8\/vcfzq8qoid4to8rmiwhznoipaok.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vc\/fz\/q8\/vcfzq8qoid4to8rmiwhznoipaok.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u0440\u0438\u043d\u0442\u0435\u0440. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0434\u043b\u044f \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u2014 \u043b\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0435\u043c\u044c \u043c\u0438\u043b\u043b\u0438\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0440\u0438\u0441\u0442\u0430 \u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u043e\u0447\u043a\u0438. \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u043d \u0444\u0438\u0440\u043c\u043e\u0439 Alps Electric, \u0434\u0430\u0442\u0430\u0448\u0438\u0442 \u0441\u0445\u043e\u0434\u0443 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435 \u0441\u043c\u043e\u0433.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yw\/yo\/ma\/ywyomaobdmwukzxksx0vgl4idbm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yw\/yo\/ma\/ywyomaobdmwukzxksx0vgl4idbm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041c\u0430\u0433\u043d\u0438\u0442\u043d\u0430\u044f \u0433\u043e\u043b\u043e\u0432\u043a\u0430.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u0421\u0442\u0430\u0432\u0438\u043c \u0441\u043e\u0444\u0442<\/font><\/h2>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0441\u043e\u0444\u0442\u0443. <\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u043e\u0434 Telium-2, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u043e\u0444\u0442\u0430:<\/p>\n<ul>\n<li>IngeDev (\u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440)<\/li>\n<li>Telium SDK (\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b)<\/li>\n<li>SAT (Software authentication tool, \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u041f\u041e)<\/li>\n<li>LLT (Local loading tool, \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b)<\/li>\n<\/ul>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u00ab\u0434\u0435\u0432\u0435\u043b\u043e\u043f\u0435\u0440\u0441\u043a\u0438\u0439\u00bb \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b. \u041e \u0442\u043e\u043c, \u0433\u0434\u0435 \u0435\u0433\u043e \u0432\u0437\u044f\u0442\u044c, \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<br \/>  \u0421\u0430\u043c \u0441\u043e\u0444\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c <a href=\"https:\/\/archive.org\/details\/telium-sdks-archive\">\u0442\u0443\u0442<\/a>. \u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u043e\u043d \u0431\u044b\u043b \u0438 <a href=\"https:\/\/teliumapplicationcoding.blogspot.com\/\">\u0442\u0443\u0442<\/a>, \u043d\u043e \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u043c\u0435\u0440\u043b\u0438. \u0418\u0437 \u0432\u0441\u0435\u0439 \u044d\u0442\u043e\u0439 \u043a\u0443\u0447\u0438 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0430\u0440\u0445\u0438\u0432 <b>Installed SDKs, IngeDev.rar<\/b>. \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u0430 \u043b\u0435\u0436\u0430\u0449\u0430\u044f \u043f\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0443 LLT \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u041c\u043e\u0436\u043d\u043e \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0443\u044e, \u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0439 \u2014 \u043e\u0434\u043d\u043e \u043c\u0443\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u043c LLT. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043a\u0430\u0442\u0430\u043d\u044b \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b. \u041e\u0441\u043e\u0431\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043f\u0430\u043f\u043a\u0438 <b>SDK 9.10.2<\/b>, <b>TELIUM Tools<\/b> \u0438 <b>Ingenico<\/b>. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <b>Ingenico<\/b> \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <b>IngeDev.exe<\/b>. \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 Eclipse (\u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 IDE \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 IngeDev). <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/uk\/ex\/ha\/ukexhaysy3bcz718e6f9wnfjiog.png\" data-src=\"https:\/\/habrastorage.org\/webt\/uk\/ex\/ha\/ukexhaysy3bcz718e6f9wnfjiog.png\"\/><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c Telium SDK, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0436\u043c\u0451\u043c \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u0435\u043d\u044e \u00abWindow\u00bb, \u0434\u0430\u043b\u0435\u0435 \u00abPreferences\u00bb, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u00abInstalled Telium packages\u00bb. \u0416\u043c\u044f\u043a\u0430\u0435\u043c \u00abAdd\u00bb, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <b>SDKDescriptor.xml<\/b> \u0432 \u043f\u0430\u043f\u043a\u0435 \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u0432\u0430\u043c \u0432\u0435\u0440\u0441\u0438\u0435\u0439 SDK.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zq\/1v\/vw\/zq1vvwpvbx2nw73y9-ugvul_4su.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zq\/1v\/vw\/zq1vvwpvbx2nw73y9-ugvul_4su.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u043c\u0451\u043c \u00abFile\u00bb, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u00abTelium project\u00bb. \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u00abTelium application\u00bb, \u0432\u0432\u043e\u0434\u0438\u043c \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abFinish\u00bb. \u0423 \u043d\u0430\u0441 \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0433\u0434\u0435 \u0432 \u043f\u0430\u043f\u043a\u0435 <b>Src<\/b> \u0431\u0443\u0434\u0443\u0442 \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430: <b>main.c<\/b> \u0438 <b>entry.c<\/b>. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0438\u0445 \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">main.c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">\/**   * \\file Main.c  *  * Application entry point.  * This file was automatically generated by IngeDev and must be filled out  * by the developer.  *\/  #include \"SDK30.H\" #include \"etat.h\" #include \"WGUI.h\"  \/\/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \/\/ Prototype declaration to be used with INCENDO (replacing 'more_function' declared in SDK file 'etat.h'). \/\/ This new prototype can be used with SDK version >= 6.5. \/\/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \/\/ extern int more_function_ext(NO_SEGMENT no, S_ETATOUT *in, void *out);  \/**   * Application has to call ServiceRegister for each service with a same   *  address Main and using predefined service number.  * \\param    size (I-) data size.  * \\param    data (I-) contains data needed between the Manager and application regarding services.  *   * \\return service call status.  *  * \\see sdk30.h  *      etat.h  *\/ int Main(unsigned int size, StructPt *data) {   NO_SEGMENT No;   int ret = FCT_OK;    \/\/ Service call management   No = ApplicationGetCurrent(); \/\/ Return the application number   switch (data->service)   {   case GIVE_YOUR_DOMAIN: \/\/ Return application domain to Manager     ret = give_your_domain(No, NULL, &amp;data->Param.GiveYourType.param_out);     break;    case AFTER_RESET: \/\/ Activated on each terminal reset     ret = after_reset(No, NULL, &amp;data->Param.AfterReset.param_out);     break;    case IS_NAME: \/\/ Activated when Manager wants to get application name     ret = is_name(No, NULL, &amp;data->Param.IsName.param_out);     break;    case IS_STATE: \/\/ Activated at boot and every minute to check if application is initialized     ret = is_state(No, NULL, &amp;data->Param.IsState.param_out);     break;    case IDLE_MESSAGE: \/\/ Activated when Manager goes back to idle, to display its message     idle_message(No, NULL, NULL);     break;    case MORE_FUNCTION: \/\/ Activated on \"F\" key and dedicated to navigation menus     \/\/ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++     \/\/ NOTE: other prototype variant 'int more_function_ext(NO_SEGMENT no, S_ETATOUT *in, void *out)'     \/\/       can be used with INCENDO.     \/\/ This other prototype is used if the application manages more than one application name.     \/\/ The 'S_ETATOUT' structure allows to know the name selected by the user after pressing the \"F\" key.     \/\/ This new prototype can be used with SDK version >= 6.5.     \/\/ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++     ret = more_function(No, NULL, NULL);     break;    case KEYBOARD_EVENT: \/\/ Activated when key is pressed     ret = keyboard_event(No, &amp;data->Param.KeyboardEvent.param_in,         &amp;data->Param.KeyboardEvent.param_out);     break;    case STATE: \/\/ Activated on \"F\" key: Consultation->State, to print terminal content receipt     ret = state(No, NULL, NULL);     break;    case CONSULT: \/\/ Activated on \"F\" key: Consultation->Transactions, to print transaction totals receipt     ret = consult(No, NULL, NULL);     break;    case MCALL: \/\/ Activated on \"F\" key: Consultation->Call->Planning of Call, to print host call planning receipt     ret = mcall(No, NULL, NULL);     break;    case IS_TIME_FUNCTION: \/\/ Activated every minute, do you need the peripherals at the next call of time_function()?     ret = is_time_function(No, NULL, &amp;data->Param.IsTimeFunction.param_out);     break;    case TIME_FUNCTION: \/\/ Activated every minute, to execute automatic periodic functions     ret = time_function(No, NULL, NULL);     break;    case IS_CHANGE_INIT: \/\/ Activated on \"F\" key: Initialization->Parameters->List, Conditions for changing Manager parameters?     ret = is_change_init(No, NULL, &amp;data->Param.IsChangeInit.param_out);     break;    case MODIF_PARAM: \/\/ Activated on \"F\" key: Initialization->Parameters->List, Manager reports parameters changed.     ret = modif_param(No, &amp;data->Param.ModifParam.param_in, NULL);     break;    case IS_EVOL_PG: \/\/ Activated on \"F\" key: Evolution->Load->Local or RemoteLoad, Conditions for application downloading?     ret = is_evol_pg(No, NULL, &amp;data->Param.IsEvolPg.param_out);     break;    case IS_DELETE: \/\/ Activated on \"F\" key: Deletion, Conditions for application deletion?     ret = is_delete(No, NULL, &amp;data->Param.IsDelete.param_out);     break;    case FILE_RECEIVED: \/\/ Activated each time Manager received a file from a \"parameters\" downloading session     ret = file_received(No, &amp;data->Param.FileReceived.param_in, NULL);     break;    case MESSAGE_RECEIVED: \/\/ Activated each time Manager received a message in its own mailbox for this application     ret = message_received(No, &amp;data->Param.MessageReceived.param_in, NULL);     break;    case IS_CARD_SPECIFIC: \/\/ Activated when card inserted card swiped or manually entry, do you want to process the card?     ret = is_card_specific(No, &amp;data->Param.IsCardSpecific.param_in,         &amp;data->Param.IsCardSpecific.param_out);     break;    case CARD_INSIDE: \/\/ Activated when the card is specific, the application process the card in transparent mode     ret = card_inside(No, &amp;data->Param.CardInside.param_in,         &amp;data->Param.CardInside. param_out);     break;    case IS_FOR_YOU_AFTER:     ret = is_for_you_after(No, &amp;data->Param.IsForYouAfter.param_in,         &amp;data->Param.IsForYouAfter.param_out);     break;    case DEBIT_NON_EMV:     ret = debit_non_emv(No, &amp;data->Param.DebitNonEmv.param_in,         &amp;data->Param.DebitNonEmv.param_out);     break;    case IS_FOR_YOU_BEFORE: \/\/ Activated when chip card inserted, ask application to recognise the chip card in order to a candidate   case TIME_FUNCTION_CHAINE: \/\/ French Bank Domain   case GIVE_INFOS_CX: \/\/ French Bank Domain   case FALL_BACK:   case DEBIT_OVER:   case AUTO_OVER:   case IS_ORDER: \/\/ French Health Care Domain   case ORDER: \/\/ French Health Care Domain   case IS_SUPPR_PG: \/\/ French Health Care Domain   case IS_INSTALL_PG: \/\/ French Health Care Domain   case GET_ORDER: \/\/ French Health Care Domain   case IS_LIBELLE: \/\/ French Health Care Domain   case EVOL_CONFIG: \/\/ French Bank Domain   case GIVE_MONEY: \/\/ French Bank Domain   case COM_EVENT:   case MODEM_EVENT:   case GIVE_INTERFACE:   case IS_BIN_CB: \/\/ French Bank Domain   case GIVE_AID:   case IS_CARD_EMV_FOR_YOU:   case DEBIT_EMV:   case SELECT_FUNCTION: \/\/ French Bank Domain   case SELECT_FUNCTION_EMV: \/\/ French Bank Domain   default:     break;   }    return ret; }  <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">entry.c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">\/**  * Entry.c  *   * Application entry point.  * This file was automatically generated by IngeDev and must be filled out  * by the developer.  *                     * Purpose:  *  * Each time Manager calls an application, it generates only one service  * call that reaches your application main with the corresponding service  * number.  *  * List of routines in file:  * - give_your_domain: Return application domain.  * - after_reset: Application reset processing.  * - is_name: Report application name to Manager.  * - is_state: Return application status (initialize or not).  * - idle_message: Dedicated to display idle message.  * - more_function: Dedicated to navigation menus.  * - keyboard_event: Return key pressed.  * - state: Print terminal content.  * - consult: Print daily totals.  * - mcall: Print call schedule.  * - is_time_function: Need pheripherals at the next call time_function()  * - time_function: Allow automatic execution of periodic functions.  * - is_change_init: Conditions for changing manager parameters?  * - modif_param: Manager reports parameters changing.  * - is_evol_pg: Conditions for application downloading?  * - is_delete: Conditions for application deletion?  * - file_received: Manager reports parameters file received from LLT.  * - message_received: Inter application messaging.  * - is_card_specific: Card needs a specific process?  * - card_inside: Transaction in progress for a specific card.  * - is_for_you_before: Is chip card as an ISO 7816-3?  * - is_for_you_after: recognise mag, smc or man card in order to be a candidate.       * - give_interface: Services registration and priority.  * - entry: Call by OS for recording services and opening DLL(s).   *\/  #include \"SDK30.H\"  \/\/+++++++++++++ Macros &amp; preprocessor definitions ++++++++++++++   #define __ENTER_KEY     -1 #define __BACK_KEY      -2 #define __EXIT_KEY      -3  #define NUMBER_OF_ITEMS(a) (sizeof(a)\/sizeof((a)[0]))  #define SERVICES_LOW_PRIORITY           30 #define SERVICES_HIGH_PRIORITY          10 #define SERVICES_DEFAULT_PRIORITY       20  \/\/++++++++++++++++++++++ Global variables ++++++++++++++++++++++   static service_desc_t Services[] = {     { 0, GIVE_YOUR_DOMAIN, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, AFTER_RESET, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_NAME, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_STATE, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IDLE_MESSAGE, (SAP)Main, (unsigned char)SERVICES_DEFAULT_PRIORITY },     { 0, MORE_FUNCTION, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, KEYBOARD_EVENT, (SAP)Main, (unsigned char)SERVICES_DEFAULT_PRIORITY },     { 0, STATE, (SAP)Main, (unsigned char)SERVICES_DEFAULT_PRIORITY },     { 0, CONSULT, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, MCALL, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_TIME_FUNCTION, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, TIME_FUNCTION, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_CHANGE_INIT, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, MODIF_PARAM, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_EVOL_PG, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_DELETE, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, FILE_RECEIVED, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, MESSAGE_RECEIVED, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, IS_CARD_SPECIFIC, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, CARD_INSIDE, (SAP)Main, (unsigned char)SERVICES_DEFAULT_PRIORITY },     { 0, IS_FOR_YOU_AFTER, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY },     { 0, DEBIT_NON_EMV, (SAP)Main, (unsigned char)SERVICES_HIGH_PRIORITY } };   typedef struct Params {     char Old_Date[24+1];     char Old_FmtDate[24+1];     char Old_Language[24+1];     char Old_Pabx[24+1];     char Old_PPad[24+1];     char Old_PPadType[24+1];     char Old_ISOreader[24+1];     char Old_TMSaccess[24+1]; } S_PARAMS;  static char appName[OBJECT_NAME_LEN + 1]; static char fileName[OBJECT_FILE_NAME_LEN + 1]; static const char coldReset[] = \"Cold Reset\\nFrom \"; static const char warmReset[] = \"Warm Reset\\nFrom \"; static const char timeToCall[] = \"Time to call\\nFrom \"; static const char idleMsg[] = \"\\nPlease Insert\\nA Smart Card...\"; static const char szDate[] = \"Date:%.2s\/%.2s\/%.2s  %.2s:%.2s\\n\";   static const char *MenuUser[] = {     \"Function 1\",     \"Function 2\",     \"Function 3\",     \"Function 4\",     \"Function 5\" };  int ManageMenu( const char *szTitle, int bRadioButtons, int nDefaultChoice,                 int nItems, const char* Items[] ) {     FILE *hDisplay;     int DisplayHeaderStatus;      \/\/ Menu.     StructList Menu;     int nY;     int nMaxX=0;     int nMaxY=0;      ENTRY_BUFFER Entry;      int i;     int nInput;     int nReturn;      hDisplay = fopen( \"DISPLAY\", \"w\" );      \/\/ Get Screen size.     GetScreenSize( &amp;nMaxY, &amp;nMaxX );      \/\/ For the menu height of the menu,     nY = 0;     DisplayHeaderStatus=StateHeader(0);            \/\/ disable display header      if ((nDefaultChoice &lt; 0) || (nDefaultChoice >= nItems))     {         nDefaultChoice = 0;     }      CreateGraphics(_MEDIUM_);      memset( &amp;Menu, 0, sizeof(Menu) );     Menu.MyWindow.left   = 0;     Menu.MyWindow.top    = nY;     Menu.MyWindow.rigth  = nMaxX - 1;     Menu.MyWindow.bottom = nMaxY - 1;     if( nMaxY == 128 )     {         Menu.MyWindow.nblines = 10;     }     else     {         Menu.MyWindow.nblines = 5;     }      Menu.MyWindow.fontsize      = _MEDIUM_;     Menu.MyWindow.type          = _PROPORTIONNEL_;     Menu.MyWindow.font          = 0;     Menu.MyWindow.correct       = _ON_;     Menu.MyWindow.offset        = 0;     Menu.MyWindow.shortcommand  = _ON_;     if( bRadioButtons )     {         Menu.MyWindow.selected = _ON_;     }     else     {         Menu.MyWindow.selected = _OFF_;     }      Menu.MyWindow.thickness     = 2;     Menu.MyWindow.border        = _ON_;     Menu.MyWindow.popup         = _NOPOPUP_;     Menu.MyWindow.first         = nDefaultChoice;     Menu.MyWindow.current       = nDefaultChoice;     Menu.MyWindow.time_out      = 60;     Menu.MyWindow.title         = (unsigned char*)szTitle;      for( i = 0; i &lt; nItems; i++ )     {         Menu.tab[i] = (unsigned char*)Items[i];     }      G_List_Entry((void*)&amp;Menu);     ttestall(ENTRY, 0);     nInput = Get_Entry((void*)&amp;Entry);      switch( nInput )     {     case CR_ENTRY_OK:         nReturn = Entry.d_entry[0];         break;      case CR_ENTRY_NOK:         nReturn = __EXIT_KEY;         break;      default:         nReturn = __BACK_KEY;         break;     }     StateHeader(DisplayHeaderStatus);     \/\/ move display header in previous state     fclose( hDisplay );      return nReturn; }  \/**  * Ask application to define its working environment, Manager will select   *  common parameters set and adapt its internal processing.  * \\param    no (-I)  * \\param    p1 (-I)  * \\param    param_out (-O)   *                          - application_type: TYP_CARTE (French Bank)  *                                              TYP_HEALTH(French Health)  *                                              TYP_EXPORT (Export)  *                          - mask:  Key \"F\" 031 -> Parameters initialization (0:absent, 1:present)  *                          - response_number: should be incremented  *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int give_your_domain(NO_SEGMENT no, void *p1, S_INITPARAMOUT *param_out) {      \/\/ Return application domain to Manager     \/\/ Setting parameters initialization     param_out->returned_state[param_out->response_number].mask = MSK_MDP|MSK_SWIPE|MSK_TYPE_PPAD|MSK_PINPAD|MSK_STANDARD|MSK_LANGUE|MSK_FRMT_DATE|MSK_DATE;     \/\/ International domain     param_out->returned_state[param_out->response_number].application_type = TYP_EXPORT;     param_out->response_number++;      return (FCT_OK); }  \/**  * Initialize data and create disks, eventually ends interrupted transaction  *  by returning S_TRANS_OUT.  * \\param    no (-I)   * \\param    p1 (-I)  * \\param    param_out (-O) Eventually ends interrupted transaction  *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int after_reset(NO_SEGMENT no, void *p1, S_TRANSOUT *param_out) {     FILE *hDisplay;     unsigned char chgt;     TYPE_CHGT  type;      \/\/ Reset management     hDisplay  = fopen( \"DISPLAY\",  \"w\" );  \/\/ Open display driver      first_init(no, &amp;chgt, (unsigned char *)&amp;type);          \/\/ New software loaded ?     if (chgt==0xFF)                        \/\/ Yes, just loaded with first execution     {          printf(coldReset);         printf(appName);         raz_init(no);                      \/\/ Reset downloading indicator     }     else                                   \/\/ No, already loaded and executed     {         printf(warmReset);         printf(appName);     }      ttestall(0, 2*100);                    \/\/ Wait for 2s.     fclose( hDisplay  );                   \/\/ Close display driver      return FCT_OK; }  \/**  * Report application name to Manager.  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)   *                          - appname: Application name   *                          - no: Application number  *                          - response_number: should be incremented  *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_name(NO_SEGMENT no, void *p1, S_ETATOUT *param_out) {   \/\/ Report application name to Manager cannot return the family name   \/\/ because the T_APPNAME type used in the \"is_name\" function is too short to store   \/\/ the FAMILY NAME (T_APPNAME length = 12+1 FAMILY NAME length =15+1)   \/\/ we use the binary name instead (without extension, and whose length is 11+1)    memset(param_out->returned_state[param_out->response_number].appname,0, sizeof(param_out->returned_state[param_out->response_number].appname));   strncpy(param_out->returned_state[param_out->response_number].appname, fileName, sizeof(param_out->returned_state[param_out->response_number].appname) - 1);   param_out->returned_state[param_out->response_number].no_appli = no;   param_out->response_number++;    return (FCT_OK); }  \/**  * Report application state initialize or not to Manager.  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)   *                          - response: REP_OK (Initialized)  *                                      REP_KO (Not initialized)   *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_state(NO_SEGMENT no, void *p1, S_ETATOUT *param_out) {     int retour;      \/\/ Return application state     param_out->returned_state[param_out->response_number].state.response = REP_OK;     retour = is_name (no, PT_NULL, param_out);      return (retour); }  \/**  * Allows the application to display its idle message when Manager goes back   *  to idle (the application should have the higher priority).  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int idle_message (NO_SEGMENT no, void *p1, void *p2) {     FILE *hDisplay;     int nFont;     char idleMessage[256];      \/\/ Idle message management     hDisplay = fopen(\"DISPLAY\",\"w\");        \/\/ Open display driver.     nFont = GetDefaultFont();               \/\/ Retrieve default font      CreateGraphics(_LARGE_);                \/\/ Create graphic font     strcpy(idleMessage,appName);     strcat(idleMessage,idleMsg);     _DrawString((char*) idleMessage,  0, 20, _OFF_);     PaintGraphics();                        \/\/ Display idle message      SetDefaultFont(nFont);                  \/\/ Restore default font     fclose(hDisplay);                       \/\/ Close display driver      return FCT_OK; }  \/**  * It's activated when pressing on \"F\" key to select the right application   *  to go on menu.  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *   * \\note Other prototype variant 'int more_function_ext(NO_SEGMENT no, S_ETATOUT *in, void *out)'  *       can be used with INCENDO.  *       This other prototype is used if the application manages more than one application name.  *       The 'S_ETATOUT' structure allows to know the name selected by the user after pressing the \"F\" key.  *       This new prototype can be used with SDK version >= 6.5.  *\/ int more_function( NO_SEGMENT no, void *p1, void *p2 ) {     FILE *hDisplay;     int bContinue=1;      \/\/ Menu management     hDisplay =fopen(\"DISPLAY\", \"w\");                                  \/\/ Open display driver     do     {         switch(ManageMenu(appName, 0, 0, NUMBER_OF_ITEMS(MenuUser), MenuUser))         {         case 0: printf(\"Function1\\nRunning...\"); bContinue=0; break;  \/\/ Function1 selected         case 1: printf(\"Function2\\nRunning...\"); bContinue=0; break;  \/\/ Function2 selected         case 2: printf(\"Function3\\nRunning...\"); bContinue=0; break;  \/\/ Function3 selected         case 3: printf(\"Function4\\nRunning...\"); bContinue=0; break;  \/\/ Function4 selected         case 4: printf(\"Function5\\nRunning...\"); bContinue=0; break;  \/\/ Function5 selected         default: bContinue=2; break;                                  \/\/ Abort key pressed         }     } while(bContinue==1);      if (bContinue!=2)     {         ttestall(0, 2*100);                                           \/\/ Wait for 2s.     }     fclose(hDisplay);                                                 \/\/ Close display driver      return FCT_OK; }  \/**  * It's activated when key is pressed and terminal is in idle mode.  * \\param    noappli   * \\param    key_in (I-)  *                       - keycode: Key pressed.   * \\param    key_out (-O)  *                       - keycode: Key pressed, new key, 0=disable.  *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int keyboard_event(NO_SEGMENT noappli,S_KEY *key_in,S_KEY *key_out) {     \/\/ Keyboard management     switch (key_in->keycode)     {     case N0: case N1: case N2: case N3: case N4:     case N5: case N6: case N7: case N8: case N9:     case T_VAL : case T_POINT :         key_out->keycode = 0;               \/\/ Inhibit these keys to Manager for International domain         break;     case F1 : case F2 : case F3 : case F4 :     case T_CORR : case T_ANN : case NAVI_CLEAR : case NAVI_OK :     case UP : case DOWN :     case T_F :                              \/\/ do not filter F key and return the same key !         key_out->keycode=key_in->keycode;   \/\/ Return the same key value for keys above !         break;     default :         key_out->keycode=key_in->keycode;         break;     }      return (FCT_OK); }  \/**  * It's activated on \"F\" key: Consultation->State.   *  To print terminal content.    * \\param    no (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int state (NO_SEGMENT no, void *p1, void *p2) {     DATE date;     object_info_t infos;     FILE     *hPrinter;      \/\/ Print application info     ObjectGetInfo(OBJECT_TYPE_APPLI, no, &amp;infos);       \/\/ Retrieve application info      hPrinter=fopen( \"PRINTER\", \"w-*\" );                 \/\/ Open printer driver     if (hPrinter!=NULL)     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\",appName);        \/\/ Print application name         pprintf(\"         STATE         \\n\"                 \"Application used as\\n\"                 \"IngeDev Template\\n\\n\");         read_date(&amp;date);                               \/\/ Print date and time         pprintf(szDate, date.day, date.month, date.year, date.hour, date.minute);         pprintf(\"File    : %s\\n\",infos.file_name);      \/\/ Print application file name         pprintf(\"CRC     : %04x\\n\",infos.crc);          \/\/ Print application CRC         ttestall(PRINTER, 0);          fclose(hPrinter);                               \/\/ Close printer driver     }      return FCT_OK; }  \/**  * It's activated on \"F\" key: Consultation->Transactions.   *  To print transactions total receipt.   * \\param    no (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int consult (NO_SEGMENT no, void *p1, void *p2) {     DATE date;     FILE *hPrinter;      \/\/ Print daily totals     hPrinter=fopen(\"PRINTER\", \"w-*\");                    \/\/ Open printer driver     if (hPrinter!=NULL)     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);        \/\/ Print application name         pprintf(\"        CONSULT        \\n\"                 \"Print daily totals here\\n\"                 \"Number of Debit\/Credit \\n\"                 \"Totals of Debit\/Credit \\n\"                 \"Number of Cancel\\n\\n\");         read_date(&amp;date);                                \/\/ Print date and time         pprintf(szDate, date.day, date.month, date.year, date.hour, date.minute);          ttestall(PRINTER, 3*100);         fclose(hPrinter);                                \/\/ Close printer driver     }      return FCT_OK; }  \/**  * It's activated on \"F\" key: Consultation->Call->Planning of Call.   *  To print call schedule receipt.   * \\param    no (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int mcall (NO_SEGMENT no, void *p1, void *p2) {     DATE date;     FILE *hPrinter;      \/\/ Print call schedule     hPrinter=fopen(\"PRINTER\", \"w-*\");                     \/\/ Open printer driver     if (hPrinter!=NULL)     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);         \/\/ Print application name         pprintf(\"         MCALL         \\n\"                 \"Planning of call here  \\n\"                 \"Time release batch     \\n\"                 \"Time loading parameters\\n\"                 \"Time loading hotlist\\n\\n\");         read_date(&amp;date);                                 \/\/ Print date and time         pprintf(szDate, date.day, date.month, date.year, date.hour, date.minute);          ttestall(PRINTER, 3*100);         fclose(hPrinter);                                 \/\/ Close printer driver     }      return FCT_OK; }  \/**  * Do you need the peripherals at the next call of time_function()?.  *  It's call every minute.  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)   *                          - response: REP_OK (Manager closes all peripherals)  *                                      REP_KO (Manager keeps all peripherals opened)   *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_time_function(NO_SEGMENT no, void *p1, S_ETATOUT *param_out) {     int retour;      \/\/ Peripherals needed?     param_out->returned_state[param_out->response_number].state.response=REP_OK;     retour = is_name (no, PT_NULL, param_out);      return(FCT_OK); }  \/**  * Allow application to execute its own periodical process.   *  It's call every minute.   * \\param    no (-I)  * \\param    p1 (-I)   * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int time_function(NO_SEGMENT no, void *p1, void *p2) {     \/\/ Periodical function in progress     fopen(\"DISPLAY\",\"w\");                 \/\/ Open display driver     printf(timeToCall);     printf(appName);      ttestall(0, 1*100);     fclose(stdout());                     \/\/ Close display driver      return (FCT_OK); }  \/**  * It's activated on \"F\" key: Initialization->Parameters->List.  *  Each time Manager wants to change its own parameters.  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)  *                          - mask: Key \"F\" 031 -> Parameters modification (0:accepting, 1:refusing)  *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_change_init(NO_SEGMENT no, void *p1, S_ETATOUT *param_out) {     S_ETATOUT etatout;     int       retour;     memcpy(&amp;etatout, param_out, sizeof(etatout));      \/\/ accept all     etatout.returned_state[etatout.response_number].state.mask=0;     memcpy(param_out,&amp;etatout,sizeof(etatout));     retour = is_name (no, PT_NULL, param_out);     return(FCT_OK); } \/**  * \u042f \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0447\u0442\u043e \u044d\u0442\u0443 \u043f\u0440\u043e\u0441\u0442\u044b\u043d\u044e \u043a\u043e\u0434\u0430  * \u043d\u0438\u043a\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043d\u043e \u043c\u0430\u043b\u043e \u043b\u0438?  * \u0412\u0434\u0440\u0443\u0433 \u043a\u043e\u043c\u0443-\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442?  *\/  \/**  * It's activated on \"F\" key: Initialization->Parameters->List.  *  Each time Manager changed its own parameters.  * \\param    noappli (I-)  * \\param    param_in (I-)  *                         - mask: Key \"F\" 031 -> Parameters modification (0:not modified, 1:modified)  * \\param    p2 (-I)   *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int modif_param(NO_SEGMENT noappli, S_MODIF_P *param_in, void *p2) {     S_MODIF_P param_changed;      memcpy(&amp;param_changed, param_in,sizeof(param_changed));     fopen(\"DISPLAY\",\"w\");     printf(\"MODIF_PARAM\\n%04x\",(int)param_changed.etatout.returned_state[0].state.mask);     ttestall(0,200);     fclose(stdout());     return(FCT_OK); }  \/**  * It's activated each time Manager wants to run a downloading session (local or remote).  *  \"F\" key: Evolution->Load->Local or Evolution->Remote Load  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)   *                          - response: REP_OK (application authorizes donwloading process)  *                                      REP_KO (application refuses any downloading process)  *    * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_evol_pg(NO_SEGMENT no, void *p1, S_ETATOUT *param_out) {     int retour;      \/\/ Downloading process allowed?     param_out->returned_state[param_out->response_number].state.response=REP_OK;     retour = is_name (no, PT_NULL, param_out);      return(FCT_OK); }  \/**  * It's activated each time Manager wants to delete an application.  *  \"F\" key: Deletion  * \\param    no (-I)   * \\param    p1 (-I)   * \\param    param_out (-O)  *                          - response: DEL_YES (application authorizes deletion process)  *                                      DEL_NO (application refuses any deletion process)  *    * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_delete(NO_SEGMENT no, void *p1, S_DELETE *param_out) {     \/\/ Deletion process allowed?     param_out->deleting=DEL_YES;      return (FCT_OK); }  \/**  * Manager reports parameters file received from LLT.  *  It's activated upon reception of a parameter file by the manager.  * \\param    no (-I)   * \\param    param_in (I-)   *                         - volume_name: SYSTEM (File loaded in CFS)  *                                        HOST (File loaded in DFS).  *                         - file_name: Application file name  * \\param    p2 (-I)  *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int file_received(NO_SEGMENT no, S_FILE *param_in, void *p2) {     FILE *prt;     S_FS_PARAM_CREATE ParamCreat;     int Ret;     char Dir_File[25];     char Dir_Label[25];     int len;     char rsp[256];     S_FS_FILE *pFile;      \/\/ Print parameter file received     prt=fopen(\"PRINTER\",\"w-\");                        \/\/ Open printer driver     pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);     pprintf(\"File Received :\\n\/%s\/%s\\n\",param_in->volume_name,param_in->file_name);     ttestall(PRINTER,0);                              \/\/ Print volume+file_name      memclr(Dir_File,sizeof(Dir_File));     memclr(Dir_Label,sizeof(Dir_Label));      sprintf(Dir_Label,\"\/%s\",param_in->volume_name);     ParamCreat.Mode = FS_WRITEONCE;     Ret = FS_mount (Dir_Label,&amp;ParamCreat.Mode);     if (Ret == FS_OK)     {         sprintf(Dir_File,\"\/%s\/%s\",param_in->volume_name,param_in->file_name);         pFile = FS_open (Dir_File, \"r\");             \/\/ The file can be open at this stage          \/\/ Eventually read the file and get parameters         len = FS_length(pFile);                      \/\/ File length in bytes         if(len > sizeof(rsp)) {           len = sizeof(rsp);         }         FS_read(rsp, len, 1, pFile);                 \/\/ Read from file          FS_close(pFile);                             \/\/ Close the file         FS_unmount(Dir_Label);                       \/\/ Cannot be deleted as it is located in system disk     }      pprintf(\"%s\\n\", rsp);      fclose(prt);                                     \/\/ Close printer driver      return (FCT_OK); }  \/**  * Inter application messaging.  *  It's activated each time Manager received a message in its mailbox for this application.  * \\param    no (-I)   * \\param    param_in (I-)   *                         - sender: Sender ID  *                         - receiver: Receiver ID  *                         - type: IAM type  *                         - length: Message length  *                         - value: Message received  * \\param    p2 (-I)  *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int message_received(NO_SEGMENT no, S_MESSAGE_IAM *param_in, void *p2) {     FILE *prt;      \/\/ Print message received from application 2     prt=fopen(\"PRINTER\",\"w-\");                                           \/\/ Open printer driver     pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);     pprintf (\"Message IAM :\\n\");     pprintf (\"S:%04X R:%04X\\n\", param_in->sender, param_in->receiver);   \/\/ USER2 to TEMPLATE     pprintf (\"IAM Type : %04X \\n\\n\", param_in->type);      pprintf(\"%s\\n\\n\\n\\n\\n\\n\", param_in->value);                          \/\/ Print the message received     ttestall(PRINTER, 2*100);     fclose(prt);                                                         \/\/ Close printer driver      return (FCT_OK); }  \/**   * It's activated when a card is inserted, swiped or manually entry.  * Ask the application if the card need a specific processing.  * \\param    no (-I)   * \\param    param_in (-I)   * \\param    param_out (-O)   *                          - response: REP_OK (card processing)  *                                      REP_KO (no card processing)    *  Only one application wants to process the card, manager calls CARD_INSIDE entry.  *  More application wants to process the card, manager asks for card removal.  *  If no application wants to process the card, manager goes on with selection process.  *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_card_specific(NO_SEGMENT no, S_TRANSIN *param_in, S_ETATOUT *param_out) {     int ret;      \/\/ Return application state     param_out->returned_state[param_out->response_number].state.response = REP_KO;     ret = is_name (no, PT_NULL, param_out);      return (FCT_OK); }  \/**   * It's activated when an application has chosen to treat this card has specific.  * The transaction is done here.  * \\param    no (-I)   * \\param    param_in (-I)   * \\param    param_out (-O)  *                          - rc_payment: PAY_OK (Transaction done)  *                                        PAY_KO (Transaction rejected)    *  If an application returns STOP, polling is stopped and manager asks for card removal.  *  The application is in charge to ask for amount and currency if needed.  *  * \\return STOP: Card accepted and transaction process done, polling is stop.   *         FCT_OK: Card refused and poll the next application.  *  * \\see sdk30.h  *\/ int card_inside(NO_SEGMENT no, S_TRANSIN *param_in, S_TRANSOUT *param_out) {     bool card_accepted = TRUE;      if (card_accepted)     {     \/\/ Return transaction status     param_out->rc_payment = PAY_OK;               \/\/ Transaction done, polling is stop     return (STOP);     }     else     {         return (FCT_OK);                          \/\/ Card refused, poll the next application     } }  \/**   * Ask application to recognize the magnetic, smart or manually card in order to be  * a candidate.  * \\param    no (-I)   * \\param    param_in (-I)   * \\param    param_out (-O)   *                          - cardappnumber: 1 = Card accepted  *                                           0 = Card rejected   *                          - cardapp: CARD_PROCESSED (low priority)   *                                     CARD_RECOGNIZED (medium priority)   *                                     CARD_PRIORITY (high priority)  *                          - appname: Application name   *                          - no: Application number  *                          - response_number: should be incremented  *  * \\return FCT_OK  *  * \\see sdk30.h  *\/ int is_for_you_after(NO_SEGMENT no, S_TRANSIN *param_in, S_CARDOUT *param_out) {      \/\/ case of chip card     if (param_in->support == CHIP_SUPPORT)     {         if(param_in->power_on_result == 0)         {             \/\/ accept this card             param_out->returned_state[param_out->response_number].cardappnumber = 1;             param_out->returned_state[param_out->response_number].cardapp [0].priority = CARD_PROCESSED;         }         else         {             \/\/ reject the card             param_out->returned_state[param_out->response_number].cardappnumber = 0;         }     }      \/\/ case of stripe 2 card     if (param_in->support == TRACK2_SUPPORT)     {         \/\/ accept this card         param_out->returned_state[param_out->response_number].cardappnumber = 1;         param_out->returned_state[param_out->response_number].cardapp [0].priority = CARD_PRIORITY;     }      \/\/ case of Card Number Manual entry     if (param_in->support == OPERATOR_SUPPORT)     {         \/\/ accept this card         param_out->returned_state[param_out->response_number].cardappnumber = 1;         param_out->returned_state[param_out->response_number].cardapp [0].priority = CARD_PRIORITY;     }      \/\/ give my application name     strcpy (param_out->returned_state[param_out->response_number].appname, appName) ;     \/\/ give my application number     param_out->returned_state[param_out->response_number].no_appli = no;     \/\/ give my card name     strcpy (param_out->returned_state[param_out->response_number].cardapp [0].cardappname, \"Template\") ;     \/\/ increment the response number     param_out->response_number++;      return (FCT_OK); }  \/**   * Process a non EMV chip card or a magnetic card or manual entry transaction.  * \\param    no (-I)   * \\param    param_in (-I)  * \\param    param_out (-O)  *                          - rc_payment: PAY_OK (Transaction done)  *                                        PAY_KO (Transaction rejected)  *    * \\return FCT_OK  *  * \\see sdk30.h  *\/ int debit_non_emv (NO_SEGMENT no, S_TRANSIN * param_in, S_TRANSOUT * param_out) {     FILE *prt;     int i;      prt  = fopen(\"PRINTER\", \"w-\");      \/\/ case of chip card     if ( param_in->support == CHIP_SUPPORT )     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);         if (param_in->historical_bytes.length != 0)         {             pprintf(\"Atr:\\n\");             for (i=0; i&lt;param_in->historical_bytes.length; i++)             {                 pprintf(\"%02X \", param_in->historical_bytes.historic[i]);             }         }         else         {             pprintf(\"Synchronous card\\n\");             pprintf(\"or Chip mute\\n\");         }         pprintf(\"\\n\\n\\n\\n\\n\\n\");     }      \/\/ case of stripe 2 card     if ( param_in->support == TRACK2_SUPPORT )     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);         pprintf(\"Track2:\\n%s\\n\\n\\n\\n\\n\\n\", param_in->track2);     }      \/\/ case of Card Number Manual entry     if ( param_in->support == OPERATOR_SUPPORT )     {         pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", appName);         pprintf(\"Manual Entry:\\n%s\\n\\n\\n\\n\\n\\n\",param_in->track2);     }      ttestall(PRINTER,2*100);     fclose(prt);      param_out->noappli      = no;                 \/\/ Return application number     param_out->rc_payment = PAY_OK;               \/\/ Transaction done     return (FCT_OK); }   \/**  * Services registration and priority.    * For all services except idle_message, priority => 0x00 highest and 0xFF lowest  * For idle_message, priority => 0x00 lowest 0xFF highest  * \\param    AppliNum (-I)   * \\param    p1 (-I)   * \\param    p2 (-I)  *   * \\return FCT_OK  *  * \\see sdk30.h  *\/ int give_interface(unsigned short AppliNum, void *p1, void *p2) {     int i;      for(i = 0; i &lt; (int)(sizeof(Services) \/ sizeof(Services[0])); i++)         Services[i].appli_id = AppliNum;      ServiceRegister((sizeof(Services) \/ sizeof(Services[0])), Services);      return FCT_OK; }  #ifdef __cplusplus extern \"C\" { #endif  \/**  * entry() is called by the OS for recording services and opening DLL(s).                     * The RegisteryPowerFailure() can also be moved to entry().  *  * \\see sdk30.h  *\/ void entry(void) {   object_info_t info;   char * indexExt;    \/\/ Recording services   ObjectGetInfo(OBJECT_TYPE_APPLI, ApplicationGetCurrent(), &amp;info);   give_interface(info.application_type, NULL, NULL);    memcpy(appName, info.name, OBJECT_NAME_LEN);   memcpy(fileName, info.file_name, OBJECT_FILE_NAME_LEN);   fileName[OBJECT_FILE_NAME_LEN] = '\\0';   appName[OBJECT_NAME_LEN] = '\\0';   \/\/ In the string given to the \"is_name\" function   \/\/ FAMILY NAME cannot be used because the T_APPNAME type used in is_name function is too short to store FAMILY NAME (T_APPNAME length = 12+1 FAMILY NAME length =15+1)   \/\/ Binary name is used instead. \"info.file_name\" contains the binary name with the file extension   \/\/ (e.g. ABCDEFG.AGN) and must be removed to be returned in the 'is_name' function.   indexExt = strstr(fileName, \".\");   if(indexExt != NULL) {     *indexExt = '\\0';   } }   #ifdef __cplusplus } #endif <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/k3\/uh\/nt\/k3uhnt4yhpp0e0c6nf_cre4xqcy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/k3\/uh\/nt\/k3uhnt4yhpp0e0c6nf_cre4xqcy.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abProject\u00bb, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abRebuild\u00bb (\u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00abBuild\u00bb \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443). <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/a9\/rc\/w9\/a9rcw9jpct--albkaussri-ndec.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/a9\/rc\/w9\/a9rcw9jpct--albkaussri-ndec.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438, \u0438, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u0433\u043b\u044e\u043a\u043e\u0432, \u043e\u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430 \u00abBin\\GNU_ARM_DEBUG\u00bb, \u0430 \u0432 \u043d\u0435\u0439 \u2014 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 (\u0441\u0430\u043c\u044b\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0434\u043b\u044f \u043d\u0430\u0441 \u2014 *.bin \u0438 *.txt).<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041f\u041e \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u0442. \u041e\u0442\u0447\u0435\u0433\u043e \u0442\u0430\u043a \u0438 \u043a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f, \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0437\u043d\u0430\u0435\u043c.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> Alert irruption!<\/font><\/h2>\n<p>  \u0418 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 Ingenico \u043d\u0435\u043b\u044c\u0437\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c.<br \/>  \u0412 \u0441\u0432\u043e\u0438\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u0445 Ingenico \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u0442\u0438\u043d\u0435 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u0449\u0438\u0442\u044b: \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 IngeTrust, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hz\/mn\/_g\/hzmn_g4mojvca6rlbta85hipvai.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/hz\/mn\/_g\/hzmn_g4mojvca6rlbta85hipvai.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0418\u0445 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430: \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u0451\u043b\u044b\u0439 \u0441\u043c\u0430\u0439\u043b\u0438\u043a. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0433\u0440\u0443\u0441\u0442\u043d\u044b\u0439 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043b\u044e\u0447\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/rm\/ag\/hg\/rmaghgt4hng0bk6e2mepciuy87w.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/rm\/ag\/hg\/rmaghgt4hng0bk6e2mepciuy87w.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0421\u0430\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Alert irruption, \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0442\u0430\u043c\u043f\u0435\u0440\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0441\u0442\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043a\u043b\u044e\u0447\u0438, \u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u043a\u043b\u044e\u0447\u0430\u0445 IngeTrust \u0438 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u0430\u043c\u043f\u0435\u0440 \u043d\u0430 Ingenico: \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0444\u043b\u0430\u0433, \u043d\u043e \u0438 \u0437\u0430\u043b\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043a\u043b\u044e\u0447\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zz\/l6\/zm\/zzl6zmn3tsk1i8rhul0jcx_9iww.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zz\/l6\/zm\/zzl6zmn3tsk1i8rhul0jcx_9iww.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0414\u0440\u0443\u0433\u0438\u043c (\u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0444\u0430\u0442\u0430\u043b\u044c\u043d\u044b\u043c) \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 Unauthorized. \u041e\u043d\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0442\u0430\u043c\u043f\u0435\u0440 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u043e \u043a\u043b\u044e\u0447\u0435\u0439 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0442. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0434\u043e\u0445\u043d\u0435\u0442 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u0438\u043c\u043f\u0442\u043e\u043c\u0430\u043c\u0438 \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043a\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u043d\u0438\u044f \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u0435\u0440\u0448\u0438\u043c. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0443\u0436\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Telium-1.<\/p>\n<p>  \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 Ingenico \u0432 \u0432\u0430\u0448\u0435\u043c \u0440\u0435\u0433\u0438\u043e\u043d\u0435. \u0412 \u0445\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0439 <b>KIT 43C<\/b>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u043e\u0439 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043d\u0430 \u041e\u0421 Telium-2 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c. \u0422\u0430\u043a\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 Ingenico. \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438\u043c\u0435\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443, \u043a\u0430\u0436\u0434\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443 Ingenico.<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/63e796a53afabae06663a708\" data-style=\"\" id=\"63e796a53afabae06663a708\" width=\"\"><\/div>\n<\/div>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/63e796a6b824706ff7710cc5\" data-style=\"\" id=\"63e796a6b824706ff7710cc5\" width=\"\"><\/div>\n<\/div>\n<p>\u041d\u0443 \u0430 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u0423\u0432\u044b, \u0432\u0438\u0434\u0435\u043e \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0451, \u0442\u0430\u043a \u0447\u0442\u043e \u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443. \u041a\u0430\u043a \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0444\u0442\u043e\u043c \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442 \u0444\u043b\u0430\u0433 \u0442\u0430\u043c\u043f\u0435\u0440\u0430, \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0441\u0432\u0435\u0436\u0438\u0435 IngeTrust keys.<\/p>\n<p>  \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u044d\u0442\u0430 \u043d\u0435\u0434\u0435\u0448\u0451\u0432\u0430\u044f, \u0437\u0430 \u0441\u0431\u0440\u043e\u0441 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441 \u0432\u0430\u0441 \u0432\u043e\u0437\u044c\u043c\u0443\u0442 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 \u043f\u044f\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0440\u0443\u0431\u043b\u0435\u0439. \u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u043c\u0435\u0440\u0448\u0438\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043f\u0440\u043e\u0449\u0435 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c, \u0430 \u0432\u0437\u0430\u043c\u0435\u043d \u043a\u0443\u043f\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/font><\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0444\u0442\u043e\u043c. \u0414\u043b\u044f \u0435\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u0432\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u2014 Software Signature Tool (SST) \u0438 Software Authentication Tool (SAT). \u041e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f Telium-1, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u2014 \u0434\u043b\u044f Telium-2. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/of\/r5\/yw\/ofr5yw4z97k1gupeeqtlmjyuhx0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/of\/r5\/yw\/ofr5yw4z97k1gupeeqtlmjyuhx0.png\"\/><\/p>\n<p>  \u0412\u043e\u0442 \u0441\u0445\u0435\u043c\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u0430\u044f \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043a SAT. \u0414\u043b\u044f \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443 \u0432\u0435\u043d\u0434\u043e\u0440\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439. \u0414\u0430\u043b\u0435\u0435 \u0432 Ingenico \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u0430\u0440\u0442\u0430 \u0441 \u0432\u0430\u0448\u0438\u043c \u043b\u0438\u0447\u043d\u044b\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u0441\u0435\u0442\u0438 \u0438 \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u0441 \u041f\u041e SAT. \u0414\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0432\u0432\u0435\u0441\u0442\u0438 \u0435\u0451 \u041f\u0418\u041d, \u0434\u0430\u043b\u0435\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0432 SAT \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441. \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Ingenico, \u0433\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043a\u043b\u044e\u0447\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u00ab\u043d\u0430 \u043c\u0435\u0441\u0442\u0435\u00bb \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/cs\/ty\/vr\/cstyvrpfiwsp_dhpa_ixvjg6gq4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/cs\/ty\/vr\/cstyvrpfiwsp_dhpa_ixvjg6gq4.png\"\/><\/p>\n<p>  \u0423 SST \u0432 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u0432\u0441\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0449\u0435, \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043d\u0430 \u0441\u043c\u0430\u0440\u0442-\u043a\u0430\u0440\u0442\u0435 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ve\/c3\/jo\/vec3jovdm5rgyuw2dikj8gry0a8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ve\/c3\/jo\/vec3jovdm5rgyuw2dikj8gry0a8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zg\/f7\/zo\/zgf7zombhoogl5dmsxyhrmmreo0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zg\/f7\/zo\/zgf7zombhoogl5dmsxyhrmmreo0.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0423 \u043c\u0435\u043d\u044f \u0434\u0430\u0436\u0435 \u043e\u0442\u044b\u0441\u043a\u0430\u043b\u0441\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u0435\u043b\u044c \u043a\u0430\u043a \u043d\u0430 \u044d\u0442\u043e\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0438 \u044d\u0442\u043e Gemplus GemPC410. \u0412 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043a\u0443\u043f\u0438\u043b \u0435\u0433\u043e \u0437\u0430 \u0442\u0440\u0438\u0441\u0442\u0430 \u0440\u0443\u0431\u043b\u0435\u0439 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u043c \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u0441\u043c\u0430\u0440\u0442-\u043a\u0430\u0440\u0442.<br \/>  \u0422\u0430\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0430\u0449\u0438\u0442\u044b, \u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u0445 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u00ab\u0434\u0435\u0432\u0435\u043b\u043e\u043f\u0435\u0440\u0441\u043a\u0438\u0439\u00bb \u0440\u0435\u0436\u0438\u043c \u2014 <b>Mock-up mode<\/b> (\u043e\u043d \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e MOCKUP). \u0412 \u043d\u0451\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0442\u0430\u043c\u043f\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u0441\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 (Production, PROD) \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041c\u043e\u043a\u0430\u043f<\/font><\/h2>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0448\u0438\u0442\u044c \u041e\u0421.<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 MOCKUP \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c! \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0440\u0435\u0436\u0438\u043c PROD \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043e\u043a\u0438\u0440\u043f\u0438\u0447\u0438\u0432\u0430\u043d\u0438\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430!<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/d0\/hw\/mv\/d0hwmvvj5mi7ritcysulm5yqnme.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/d0\/hw\/mv\/d0hwmvvj5mi7ritcysulm5yqnme.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438\u0441\u044c. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043a\u0430\u0431\u0435\u043b\u0435\u043c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443, \u0437\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443 F1 \u0438 \u043f\u043e\u0434\u0430\u0451\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u00ab\u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u0438\u00bb \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0436\u0438\u043c\u0430\u0435\u043c F2-F3-F4. \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0441\u043f\u0435\u043b\u0438 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0437\u0430\u0433\u043e\u0440\u0438\u0442\u0441\u044f \u00abLLT\u00bb. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/i2\/ms\/f-\/i2msf-otegyz6hi4kfjjc5azjfm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/i2\/ms\/f-\/i2msf-otegyz6hi4kfjjc5azjfm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u0442\u0443 \u0441\u0430\u043c\u0443\u044e LLT.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vv\/ib\/k8\/vvibk8s3n-vuvoeqsxlvbanr8py.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vv\/ib\/k8\/vvibk8s3n-vuvoeqsxlvbanr8py.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0414\u0435\u043b\u0430\u0435\u043c \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u043a\u043b\u0438\u043a \u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u043d\u0438\u0436\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043e\u043a\u043d\u0430. \u0414\u043e\u043b\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/6c\/cg\/jc\/6ccgjc3fso_qc3ncyrzpayedrss.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/6c\/cg\/jc\/6ccgjc3fso_qc3ncyrzpayedrss.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441 \u041e\u0421, \u0432 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 <b>ICT2XX_MOCKUP.m40<\/b>. \u0416\u0438\u0432\u0451\u0442 \u043e\u043d \u0432 \u043f\u0430\u043f\u043a\u0435 <b>Components<\/b> \u0443 Telium SDK. \u0416\u043c\u0451\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abDownload\u00bb. \u0412\u0441\u0451, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0448\u0451\u043b. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/x_\/ws\/do\/x_wsdo9i_kni1ckott7hylpm9nm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/x_\/ws\/do\/x_wsdo9i_kni1ckott7hylpm9nm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c (\u0436\u043c\u0451\u043c \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0442\u0443\u0434\u0430 \u0436\u0435, \u0433\u0434\u0435 \u043c\u044b \u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438). \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043d\u0435\u043d\u0430\u0434\u043e\u043b\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442, \u043f\u043e\u043c\u0438\u0433\u0430\u0435\u0442 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439, \u043f\u043e\u043f\u0438\u0449\u0438\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u043e\u043c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u043d\u043e\u0432\u044c \u0437\u0430\u0433\u043e\u0440\u0438\u0442\u0441\u044f \u00abLLT\u00bb. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u0433\u0430\u0442\u044c \u043d\u0430\u0434\u043f\u0438\u0441\u044c \u00abSpecial Mock-up\u00bb, \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043f\u043e \u0441\u0442\u0438\u043b\u044e \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00abUnauthorized\u00bb. \u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430, \u0430 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435, \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0449\u0435\u0435 \u043e\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u00ab\u0434\u0435\u0432\u0435\u043b\u043e\u043f\u0435\u0440\u0441\u043a\u043e\u0433\u043e\u00bb \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443. \u041d\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043c\u043e\u043a\u0430\u043f\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u043a\u043b\u044e\u0447\u0435\u0439 IngeTrust, \u043e\u0442\u0447\u0435\u0433\u043e \u043f\u0440\u0438 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u041e\u0421 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0432\u044b\u043f\u0430\u0434\u0435\u0442 \u0432 \u043e\u0448\u0438\u0431\u043a\u0443 \u00abUnauthorized\u00bb. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u043a\u0430\u043f \u043d\u0430 \u0443\u0436\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0430\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 MOCKUP-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d PROD-\u043a\u043b\u044e\u0447\u0430\u043c\u0438, \u043e\u0442\u0447\u0435\u0433\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/5_\/9l\/fd\/5_9lfdb7muae7tpm3r-diilxhny.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/5_\/9l\/fd\/5_9lfdb7muae7tpm3r-diilxhny.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ks\/av\/tz\/ksavtz0il_5jgtkonnlmcjy4uzc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ks\/av\/tz\/ksavtz0il_5jgtkonnlmcjy4uzc.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/f0\/xi\/r2\/f0xir2iayr6jhh9n13n-rd6gq6s.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/f0\/xi\/r2\/f0xir2iayr6jhh9n13n-rd6gq6s.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/x9\/pe\/1s\/x9pe1szxfyti-eanec3w4j5hfcg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/x9\/pe\/1s\/x9pe1szxfyti-eanec3w4j5hfcg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0438\u0437 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u043f\u0430\u043f\u043a\u0438 Telium Manager. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0433\u043e\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ez\/zw\/yh\/ezzwyhep8_hjndff--qppaw1jrq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ez\/zw\/yh\/ezzwyhep8_hjndff--qppaw1jrq.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e\u043c \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0442\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> SAT<\/font><\/h2>\n<p>  \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0443\u0436\u0435 \u0441\u0445\u043e\u0434\u0443 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435. \u041e\u0442\u0447\u0435\u0433\u043e \u0431\u044b \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0432\u0435\u0436\u0435\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0443? \u0425\u043e\u0442\u044f Mock-up \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u043c\u0435\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u0430\u0440\u0442\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c SAT, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435 <b>TELIUM tools<\/b>.<br \/>  \u0412 \u043f\u0430\u043f\u043a\u0435 \u0441 \u043d\u0438\u043c \u043b\u0435\u0436\u0438\u0442 \u0444\u0430\u0439\u043b <b>SAT.ini<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043c Mock-up. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">SAT.ini<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">; SAGEM Monetel  ;---------------  [Repertoire] BaseDeDonnees=SAT FichierLangue=SAT.lng  [X] 1=79D0149CF2E4FFEFBCDA8EF0 2=13467D24C742D627E8F0F960AA2ECD4E65F755E1793C  [Certif] Commun=  [Options] portNumber=1 Mockup=yes ErrMsgLng=yes DefaultExt=40 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/6t\/_r\/kz\/6t_rkzvriniudeexu_kxe0trkqa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/6t\/_r\/kz\/6t_rkzvriniudeexu_kxe0trkqa.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c SAT \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043c\u043e\u043a\u0430\u043f-\u0440\u0435\u0436\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0451\u043d. \u041b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 <b>admin<\/b>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/f3\/6s\/tx\/f36stxgygbp-hnckdufifdiabuw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/f3\/6s\/tx\/f36stxgygbp-hnckdufifdiabuw.png\"\/><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u043a\u043d\u043e SAT.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/40\/ep\/iu\/40epiuqnmploz5oblkjwjjwfsfo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/40\/ep\/iu\/40epiuqnmploz5oblkjwjjwfsfo.png\"\/><\/p>\n<p>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abFile\u00bb, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <b>Sign and authenticate an application<\/b>. \u0412 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u043a \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 <b>Bin<\/b> \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0414\u0430\u043b\u0435\u0435 \u0436\u043c\u044f\u043a\u0430\u0435\u043c \u00abOK\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/_m\/n8\/li\/_mn8liactmcy4_mboh4_qduhs98.png\" data-src=\"https:\/\/habrastorage.org\/webt\/_m\/n8\/li\/_mn8liactmcy4_mboh4_qduhs98.png\"\/><\/p>\n<p>  \u0422\u0443\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/cc\/uk\/u7\/ccuku7sw5-ypmx2mhci7cj7odk0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/cc\/uk\/u7\/ccuku7sw5-ypmx2mhci7cj7odk0.png\"\/><\/p>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0451. \u0412 \u043f\u0430\u043f\u043a\u0435 <b>Destination<\/b> (\u043f\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0443 \u0441 \u044d\u043a\u0437\u0435\u0448\u043d\u0438\u043a\u043e\u043c SAT) \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b *.M40. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443 <b>GNU_ARM_DEBUG<\/b> \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u0441\u0451, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043c\u043e\u043a\u0430\u043f-\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b.<\/p>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a<\/h3>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/g3\/un\/te\/g3unte8imzo9cgmza-ur6iwwmwy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/g3\/un\/te\/g3unte8imzo9cgmza-ur6iwwmwy.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u043e\u0431\u0440\u0430\u043d. \u0411\u0435\u0440\u0451\u043c \u043d\u0430\u0448 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0436\u043c\u044f\u043a\u0430\u0435\u043c \u043d\u0430 \u043d\u0451\u043c \u00abF\u00bb \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0432 \u043c\u0435\u043d\u044e, \u0433\u0434\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abTelium manager\u00bb. \u0422\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abEvolution\u00bb, \u0434\u0430\u043b\u0435\u0435 \u00abLoad\u00bb, \u00abLocal\u00bb. \u041d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0437\u0430\u0433\u043e\u0440\u0438\u0442\u0441\u044f \u00abLLT\u00bb. \u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0444\u0430\u0439\u043b *.M40 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u0441\u044f \u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438). \u041a \u0441\u043b\u043e\u0432\u0443 \u0433\u043e\u0432\u043e\u0440\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043d\u0435\u0447\u0442\u043e, \u0447\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u0441 F1-F2-F3-F4 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043b\u0435\u0439\u0442\u0435 Telium Manager (\u041e\u0421 \u0443\u0436\u0435 \u043d\u0435 \u043d\u0430\u0434\u043e) \u0438 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442, \u0438, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ed\/n_\/-j\/edn_-jbjcip-tefgsiuadeh6s58.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ed\/n_\/-j\/edn_-jbjcip-tefgsiuadeh6s58.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041f\u0438\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443<\/font><\/h2>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0434\u043b\u044f \u043d\u0430\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b <b>entry.c<\/b>, \u0433\u0434\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <b>idleMsg<\/b> \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u043c \u0441\u0432\u043e\u044e \u0441\u0442\u0440\u043e\u043a\u0443. \u0414\u0430\u043b\u0435\u0435 \u0438\u0449\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>idle_message<\/b> \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0451 \u043a \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u043c\u0443 \u0432\u0438\u0434\u0443:<\/p>\n<pre><code class=\"cpp\">int idle_message (NO_SEGMENT no, void *p1, void *p2) {     FILE *hDisplay;     int nFont;     char idleMessage[256];      \/\/ Idle message management     hDisplay = fopen(\"DISPLAY\",\"w\");        \/\/ Open display driver.     nFont = GetDefaultFont();               \/\/ Retrieve default font      CreateGraphics(_LARGE_);                \/\/ Create graphic font     strcat(idleMessage,idleMsg);     _DrawString((char*) idleMessage,  0, 20, _OFF_);     PaintGraphics();                        \/\/ Display idle message      SetDefaultFont(nFont);                  \/\/ Restore default font     fclose(hDisplay);                       \/\/ Close display driver      return FCT_OK; }<\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c, \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/0n\/r1\/nb\/0nr1nbquff0supjt1j79zvlveqm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/0n\/r1\/nb\/0nr1nbquff0supjt1j79zvlveqm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041e\u043d\u043e \u0436\u0438\u0432\u043e\u0435, \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430<\/font><\/h2>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>keyboard_event<\/b>:<\/p>\n<pre><code class=\"cpp\">int keyboard_event(NO_SEGMENT noappli,S_KEY *key_in,S_KEY *key_out) {     \/\/ Keyboard management     switch (key_in->keycode)     {     case N0: case N1: case N2: case N3: case N4:     case N5: case N6: case N7: case N8: case N9:     case T_VAL : case T_POINT :         key_out->keycode = 0;               \/\/ Inhibit these keys to Manager for International domain         break;     case F1 : case F2 : case F3 : case F4 :     case T_CORR : case T_ANN : case NAVI_CLEAR : case NAVI_OK :     case UP : case DOWN :     case T_F :                              \/\/ do not filter F key and return the same key !         key_out->keycode=key_in->keycode;   \/\/ Return the same key value for keys above !         break;     default :         key_out->keycode=key_in->keycode;         break;     }      return (FCT_OK); }<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435 (idle state). \u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0436\u0438\u0442 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u0437\u0430\u043d\u044f\u0442\u044b\u0439 switch \u0432 \u043d\u0430\u0447\u0430\u043b\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abF\u00bb \u0437\u0434\u0435\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 <b>key_in<\/b> \u0432 <b>key_out<\/b> \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0438\u043c Telium Manager.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041f\u0440\u0438\u043d\u0442\u0435\u0440<\/font><\/h2>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c. <\/p>\n<p>  \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code class=\"cpp\">    FILE * hPrinter;     char * toPrinter = \"Hello, Habrahabr!\\nfrom MaFrance351\";     hPrinter = fopen(\"PRINTER\",\"w-\");          pprintf(\"\\x1b\"\"E%s\\n\"\"\\x1b\"\"F\", toPrinter);     ttestall(PRINTER,3*100);     fclose(hPrinter);<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ni\/pd\/oy\/nipdoyygmetobdhs377x14wptio.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ni\/pd\/oy\/nipdoyygmetobdhs377x14wptio.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e!<\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 LLT.<\/p>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0438 \u0448\u0442\u0440\u0438\u0445-\u043a\u043e\u0434\u044b (\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438):<\/p>\n<pre><code class=\"cpp\">        unsigned char *String = \"Test\";         int X = 2;  \/\/ width:  2 pixels         int Y = 50; \/\/ height: 50 pixels         FILE *hPrinter;         hPrinter = fopen( \"PRINTER\", \"w\" );         \/\/Horizontal, centered and value printed          PrintBarCode128(String, X, Y, 0, 1, 1);         fclose(hPrinter); <\/code><\/pre>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u041c\u0435\u043d\u044e<\/font><\/h2>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u0435\u043d\u044e \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\"> static const char *MenuUser[] = {     \"Function 1\",     \"Function 2\",     \"Function 3\",     \"Function 4\",     \"Function 5\" };  int ManageMenu( const char *szTitle, int bRadioButtons, int nDefaultChoice,                 int nItems, const char* Items[] ) {     FILE *hDisplay;     int DisplayHeaderStatus;      \/\/ Menu.     StructList Menu;     int nY;     int nMaxX=0;     int nMaxY=0;      ENTRY_BUFFER Entry;      int i;     int nInput;     int nReturn;      hDisplay = fopen( \"DISPLAY\", \"w\" );      \/\/ Get Screen size.     GetScreenSize( &amp;nMaxY, &amp;nMaxX );      \/\/ For the menu height of the menu,     nY = 0;     DisplayHeaderStatus=StateHeader(0);            \/\/ disable display header      if ((nDefaultChoice &lt; 0) || (nDefaultChoice >= nItems))     {         nDefaultChoice = 0;     }      CreateGraphics(_MEDIUM_);      memset( &amp;Menu, 0, sizeof(Menu) );     Menu.MyWindow.left   = 0;     Menu.MyWindow.top    = nY;     Menu.MyWindow.rigth  = nMaxX - 1;     Menu.MyWindow.bottom = nMaxY - 1;     if( nMaxY == 128 )     {         Menu.MyWindow.nblines = 10;     }     else     {         Menu.MyWindow.nblines = 5;     }      Menu.MyWindow.fontsize      = _MEDIUM_;     Menu.MyWindow.type          = _PROPORTIONNEL_;     Menu.MyWindow.font          = 0;     Menu.MyWindow.correct       = _ON_;     Menu.MyWindow.offset        = 0;     Menu.MyWindow.shortcommand  = _ON_;     if( bRadioButtons )     {         Menu.MyWindow.selected = _ON_;     }     else     {         Menu.MyWindow.selected = _OFF_;     }      Menu.MyWindow.thickness     = 2;     Menu.MyWindow.border        = _ON_;     Menu.MyWindow.popup         = _NOPOPUP_;     Menu.MyWindow.first         = nDefaultChoice;     Menu.MyWindow.current       = nDefaultChoice;     Menu.MyWindow.time_out      = 60;     Menu.MyWindow.title         = (unsigned char*)szTitle;      for( i = 0; i &lt; nItems; i++ )     {         Menu.tab[i] = (unsigned char*)Items[i];     }      G_List_Entry((void*)&amp;Menu);     ttestall(ENTRY, 0);     nInput = Get_Entry((void*)&amp;Entry);      switch( nInput )     {     case CR_ENTRY_OK:         nReturn = Entry.d_entry[0];         break;      case CR_ENTRY_NOK:         nReturn = __EXIT_KEY;         break;      default:         nReturn = __BACK_KEY;         break;     }     StateHeader(DisplayHeaderStatus);     \/\/ move display header in previous state     fclose( hDisplay );      return nReturn; }  int more_function( NO_SEGMENT no, void *p1, void *p2 ) {     FILE *hDisplay;     int bContinue=1;      \/\/ Menu management     hDisplay =fopen(\"DISPLAY\", \"w\");                                  \/\/ Open display driver     do     {         switch(ManageMenu(appName, 0, 0, NUMBER_OF_ITEMS(MenuUser), MenuUser))         {         case 0: printf(\"Function1\\nRunning...\"); bContinue=0; break;  \/\/ Function1 selected         case 1: printf(\"Function2\\nRunning...\"); bContinue=0; break;  \/\/ Function2 selected         case 2: printf(\"Function3\\nRunning...\"); bContinue=0; break;  \/\/ Function3 selected         case 3: printf(\"Function4\\nRunning...\"); bContinue=0; break;  \/\/ Function4 selected         case 4: printf(\"Function5\\nRunning...\"); bContinue=0; break;  \/\/ Function5 selected         default: bContinue=2; break;                                  \/\/ Abort key pressed         }     } while(bContinue==1);      if (bContinue!=2)     {         ttestall(0, 2*100);                                           \/\/ Wait for 2s.     }     fclose(hDisplay);                                                 \/\/ Close display driver      return FCT_OK; }<\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0443\u043d\u043a\u0442\u0430\u043c\u0438 \u043c\u0435\u043d\u044e. \u0417\u0430 \u0435\u0433\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>ManageMenu<\/b>. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0443\u0442 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u00abF\u00bb \u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lm\/le\/0y\/lmle0yjc-99ig-m8990lpa7kf8k.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/lm\/le\/0y\/lmle0yjc-99ig-m8990lpa7kf8k.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/b2\/gn\/ie\/b2gnieq8ttp1q_azwk97jhs0n38.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/b2\/gn\/ie\/b2gnieq8ttp1q_azwk97jhs0n38.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0430\u043a \u043e\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u0427\u0442\u043e \u0436\u0435 \u0434\u0430\u043b\u044c\u0448\u0435?<\/font><\/h2>\n<p>  \u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, Telium-2 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441, \u043d\u0435\u0436\u0435\u043b\u0438 \u0430\u043d\u0442\u0438\u043a\u0432\u0430\u0440\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u043d\u0430 Z80. \u041d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043e\u0442 Ingenico \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e. \u0414\u0430 \u0447\u0442\u043e \u0443\u0436 \u0442\u0430\u043c \u2014 \u0442\u0435\u043c\u0430 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0438\u0433\u0434\u0435. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0435\u043c \u0436\u0435 VeriFone, \u0433\u0434\u0435 \u0441\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u0440\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Verix EVO (\u0440\u043e\u0432\u0435\u0441\u043d\u0438\u043a Telium-2) \u043f\u043e \u043e\u0431\u044a\u0451\u043c\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u0440\u043e\u043c\u0430\u043d \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u043b\u044f POS-terminal&#8217;\u043e\u0432 \u0434\u0430\u0436\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043f\u043e\u043b\u043d\u043e\u0433\u043e (\u0442\u043e\u0447\u043d\u0435\u0435, \u043f\u0443\u0441\u0442\u043e\u0433\u043e) \u0447\u0430\u0439\u043d\u0438\u043a\u0430), \u043d\u0430 Github \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f Telium-2, \u043e\u0442\u043a\u0443\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u0442\u044c. \u0411\u044b\u043b\u043e \u0431\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043d\u0430\u0439\u0442\u0438 SDK \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 (\u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 Ingenico Unicapt32, Lipman Nurit, NewPOS NEW8110), \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u0438\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c \u043d\u0438\u0447\u0435\u043c.<\/p>\n<p>  Telium-2 \u0438\u043c\u0435\u0435\u0442 \u0435\u0449\u0451 \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u043e\u0434\u0435 \u043e\u043a\u043e\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 HTML, \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u0435\u0449\u0451. \u0418, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0430\u0439\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f. <br \/>  \u0422\u0430\u043a\u0438\u0435 \u0434\u0435\u043b\u0430.<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\"> \u0421\u0441\u044b\u043b\u043a\u0438<\/font><\/h2>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/archive.org\/details\/telium-sdks-archive\">\u0421\u043e\u0444\u0442<\/a><\/li>\n<li><a href=\"http:\/\/teliumapplicationcoding.blogspot.com\/\">\u0415\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/a><\/li>\n<li>\u041f\u043e\u0440\u0442\u044b <a href=\"https:\/\/github.com\/hatwheels\/pos_ingenico_220_250_arkanoid\">\u0430\u0440\u043a\u0430\u043d\u043e\u0438\u0434\u0430<\/a> \u0438 <a href=\"https:\/\/github.com\/hatwheels\/pos_ingenico_220_250_snake\">\u0437\u043c\u0435\u0439\u043a\u0438<\/a> \u043d\u0430 ICT220. \u0423\u0432\u044b, \u0441\u0445\u043e\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u043d\u0435\u0442.<\/li>\n<li><a href=\"https:\/\/github.com\/arunpatil\/Mobile\">\u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f ICT220<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/arunpatil\/OnTab\">\u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0435\u043a\u0442<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/689878\/\">\u041f\u043e\u0441\u0442 \u043f\u0440\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043d\u0442\u0438\u043a\u0432\u0430\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0430 Z80<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/703328\/\">\u041f\u043e\u0441\u0442 \u043f\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u0430\u0449\u0438\u0442\u044b \u0432 \u043f\u0438\u043d-\u043f\u0430\u0434\u0430\u0445<\/a><\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/timeweb.cloud\/\/vds-vps?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign=vds-promo-6-rub\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/p-\/u9\/l2\/p-u9l27ynelxi92bcmdxhu76ma8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/p-\/u9\/l2\/p-u9l27ynelxi92bcmdxhu76ma8.png\"\/><\/a><\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/716236\/\"> https:\/\/habr.com\/ru\/company\/timeweb\/blog\/716236\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445!<\/p>\n<p>  \u0421\u043a\u0430\u0436\u0438\u0442\u0435: \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u0442\u0435\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u0438\u0435 \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u044e \u043a\u0430\u0440\u0442\u0443 \u0435\u0434\u0432\u0430 \u043b\u0438 \u043d\u0435 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e? \u0425\u043e\u0442\u0435\u043b\u0438 \u043b\u0438 \u0432\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0451 \u043f\u043e\u0434 \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432? <br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u2014 \u00ab\u0414\u0430\u00bb, \u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/v6\/h7\/bd\/v6h7bdokqytawnwcdgxfaxza5i8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/v6\/h7\/bd\/v6h7bdokqytawnwcdgxfaxza5i8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f POS-terminal&#8217;\u043e\u0432 \u043f\u043e\u043a\u0440\u044b\u0442\u0430 \u0437\u0430\u0432\u0435\u0441\u043e\u0439 \u0442\u0430\u0439\u043d\u044b, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0435\u0451 \u0440\u0430\u0437\u0432\u0435\u044f\u0442\u044c. \u0412 \u0445\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0430\u0437\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u0442\u0430\u043a\u0438\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u044b. \u0423\u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043a\u0430\u043a \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-345355","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=345355"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345355\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=345355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=345355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=345355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}