PageSourceSearch

https://smartdec.net/publications/

html smartdec.net collected 2026-10-03 19:50:22 UTC 29,148 bytes, 574 lines download raw bytes

1<!DOCTYPE html><html lang="ru"><head>
2  <meta charset="utf-8">
3  <title>SmartDec - Publications</title>
4  <base href="/">
5  <meta name="viewport" content="width=device-width, initial-scale=1">
6  <link rel="icon" type="image/x-icon" href="favicon.ico">
7  <link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-icon-57x57.png">
8  <link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-icon-60x60.png">
9  <link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-icon-72x72.png">
10  <link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-icon-76x76.png">
11  <link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-icon-114x114.png">
12  <link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-icon-120x120.png">
13  <link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-icon-144x144.png">
14  <link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-icon-152x152.png">
15  <link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-icon-180x180.png">
16  <link rel="icon" type="image/png" sizes="192x192" href="/assets/android-icon-192x192.png">
17  <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png">
18  <link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon-96x96.png">
19  <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png">
20  <link rel="manifest" href="/assets/manifest.json">
21  <meta name="msapplication-TileColor" content="#ffffff">
22  <meta name="msapplication-TileImage" content="/assets/ms-icon-144x144.png">
23  <meta name="theme-color" content="#ffffff">
24
25  <!-- Google Tag Manager -->
26<script>
vendor: 333 bytes, lines 26-30
26(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
27  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
28  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
29  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
30})(window,document,'script','dataLayer','
30GTM-KZNW26F
vendor: 3 bytes, line 30
30');
30</script>
30
31<!-- End Google Tag Manager -->
32<link rel="stylesheet" href="/styles.0344c89fbc0e2f86b2ff.css"><style ng-transition="smartdec-site">.collapse[_ngcontent-sc0] {
33  display: none; }
34
35.nav-container[_ngcontent-sc0]   .navbar.hidden[_ngcontent-sc0] {
36  height: 0;
37  top: -55px; }
38
39.nav-container[_ngcontent-sc0]   .navbar[_ngcontent-sc0] {
40  position: fixed;
41  top: 0;
42  padding-top: 0;
43  width: 100%;
44  margin-left: auto;
45  margin-right: auto;
46  z-index: 1000;
47  background-color: #b9b9b9;
48  height: 60px;
49  visibility: visible;
50  transition: height 0.5s; }
51
52#navbarSecondSupportedContent.hidden[_ngcontent-sc0] {
53  display: none; }</style><style ng-transition="smartdec-site">.nav[_ngcontent-sc1] {
54  display: flex;
55  flex-wrap: wrap;
56  padding-left: 0;
57  margin-bottom: 0;
58  list-style: none; }
59
60.nav-link[_ngcontent-sc1] {
61  display: block;
62  padding: 0.5rem 1rem; }
63
64.nav-link[_ngcontent-sc1]:hover, .nav-link[_ngcontent-sc1]:focus {
65    text-decoration: none; }
66
67.nav-link.disabled[_ngcontent-sc1] {
68    color: #6c757d;
69    pointer-events: none;
70    cursor: default; }
71
72.nav-tabs[_ngcontent-sc1] {
73  border-bottom: 1px solid #dee2e6; }
74
75.nav-tabs[_ngcontent-sc1]   .nav-item[_ngcontent-sc1] {
76    margin-bottom: -1px; }
77
78.nav-tabs[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
79    border: 1px solid transparent;
80    border-top-left-radius: 0.25rem;
81    border-top-right-radius: 0.25rem; }
82
83.nav-tabs[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:hover, .nav-tabs[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:focus {
84      border-color: #e9ecef #e9ecef #dee2e6; }
85
86.nav-tabs[_ngcontent-sc1]   .nav-link.disabled[_ngcontent-sc1] {
87      color: #6c757d;
88      background-color: transparent;
89      border-color: transparent; }
90
91.nav-tabs[_ngcontent-sc1]   .nav-link.active[_ngcontent-sc1], .nav-tabs[_ngcontent-sc1]   .nav-item.show[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
92    color: #495057;
93    background-color: #fff;
94    border-color: #dee2e6 #dee2e6 #fff; }
95
96.nav-tabs[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
97    margin-top: -1px;
98    border-top-left-radius: 0;
99    border-top-right-radius: 0; }
100
101.nav-pills[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
102  border-radius: 0.25rem; }
103
104.nav-pills[_ngcontent-sc1]   .nav-link.active[_ngcontent-sc1], .nav-pills[_ngcontent-sc1]   .show[_ngcontent-sc1]    > .nav-link[_ngcontent-sc1] {
105  color: #fff;
106  background-color: #007bff; }
107
108.nav-fill[_ngcontent-sc1]   .nav-item[_ngcontent-sc1] {
109  flex: 1 1 auto;
110  text-align: center; }
111
112.nav-justified[_ngcontent-sc1]   .nav-item[_ngcontent-sc1] {
113  flex-basis: 0;
114  flex-grow: 1;
115  text-align: center; }
116
117.tab-content[_ngcontent-sc1]    > .tab-pane[_ngcontent-sc1] {
118  display: none; }
119
120.tab-content[_ngcontent-sc1]    > .active[_ngcontent-sc1] {
121  display: block; }
122
123.navbar[_ngcontent-sc1] {
124  position: relative;
125  display: flex;
126  flex-wrap: wrap;
127  align-items: center;
128  justify-content: space-between;
129  padding: 0.5rem 1rem; }
130
131.navbar[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
132    display: flex;
133    flex-wrap: wrap;
134    align-items: center;
135    justify-content: space-between; }
136
137.navbar-brand[_ngcontent-sc1] {
138  display: inline-block;
139  padding-top: 0.3125rem;
140  padding-bottom: 0.3125rem;
141  margin-right: 1rem;
142  font-size: 1.25rem;
143  line-height: inherit;
144  white-space: nowrap; }
145
146.navbar-brand[_ngcontent-sc1]:hover, .navbar-brand[_ngcontent-sc1]:focus {
147    text-decoration: none; }
148
149.navbar-nav[_ngcontent-sc1] {
150  display: flex;
151  flex-direction: column;
152  padding-left: 0;
153  margin-bottom: 0;
154  list-style: none; }
155
156.navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
157    padding-right: 0;
158    padding-left: 0; }
159
160.navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
161    position: static;
162    float: none; }
163
164.navbar-text[_ngcontent-sc1] {
165  display: inline-block;
166  padding-top: 0.5rem;
167  padding-bottom: 0.5rem; }
168
169.navbar-collapse[_ngcontent-sc1] {
170  flex-basis: 100%;
171  flex-grow: 1;
172  align-items: center; }
173
174.navbar-toggler[_ngcontent-sc1] {
175  padding: 0.25rem 0.75rem;
176  font-size: 1.25rem;
177  line-height: 1;
178  background-color: transparent;
179  border: 1px solid transparent;
180  border-radius: 0.25rem; }
181
182.navbar-toggler[_ngcontent-sc1]:hover, .navbar-toggler[_ngcontent-sc1]:focus {
183    text-decoration: none; }
184
185.navbar-toggler-icon[_ngcontent-sc1] {
186  display: inline-block;
187  width: 1.5em;
188  height: 1.5em;
189  vertical-align: middle;
190  content: "";
191  background: no-repeat center center;
192  background-size: 100% 100%; }
193
194@media (max-width: 575.98px) {
195  .navbar-expand-sm[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-sm[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
196    padding-right: 0;
197    padding-left: 0; } }
198
199@media (min-width: 576px) {
200  .navbar-expand-sm[_ngcontent-sc1] {
201    flex-flow: row nowrap;
202    justify-content: flex-start; }
203    .navbar-expand-sm[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
204      flex-direction: row; }
205      .navbar-expand-sm[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
206        position: absolute; }
207      .navbar-expand-sm[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
208        padding-right: 0.5rem;
209        padding-left: 0.5rem; }
210    .navbar-expand-sm[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-sm[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
211      flex-wrap: nowrap; }
212    .navbar-expand-sm[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
213      display: flex !important;
214      flex-basis: auto; }
215    .navbar-expand-sm[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
216      display: none; } }
217
218@media (max-width: 767.98px) {
219  .navbar-expand-md[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-md[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
220    padding-right: 0;
221    padding-left: 0; } }
222
223@media (min-width: 768px) {
224  .navbar-expand-md[_ngcontent-sc1] {
225    flex-flow: row nowrap;
226    justify-content: flex-start; }
227    .navbar-expand-md[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
228      flex-direction: row; }
229      .navbar-expand-md[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
230        position: absolute; }
231      .navbar-expand-md[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
232        padding-right: 0.5rem;
233        padding-left: 0.5rem; }
234    .navbar-expand-md[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-md[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
235      flex-wrap: nowrap; }
236    .navbar-expand-md[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
237      display: flex !important;
238      flex-basis: auto; }
239    .navbar-expand-md[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
240      display: none; } }
241
242@media (max-width: 991.98px) {
243  .navbar-expand-lg[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-lg[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
244    padding-right: 0;
245    padding-left: 0; } }
246
247@media (min-width: 992px) {
248  .navbar-expand-lg[_ngcontent-sc1] {
249    flex-flow: row nowrap;
250    justify-content: flex-start; }
251    .navbar-expand-lg[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
252      flex-direction: row; }
253      .navbar-expand-lg[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
254        position: absolute; }
255      .navbar-expand-lg[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
256        padding-right: 0.5rem;
257        padding-left: 0.5rem; }
258    .navbar-expand-lg[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-lg[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
259      flex-wrap: nowrap; }
260    .navbar-expand-lg[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
261      display: flex !important;
262      flex-basis: auto; }
263    .navbar-expand-lg[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
264      display: none; } }
265
266@media (max-width: 1199.98px) {
267  .navbar-expand-xl[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-xl[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
268    padding-right: 0;
269    padding-left: 0; } }
270
271@media (min-width: 1200px) {
272  .navbar-expand-xl[_ngcontent-sc1] {
273    flex-flow: row nowrap;
274    justify-content: flex-start; }
275    .navbar-expand-xl[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
276      flex-direction: row; }
277      .navbar-expand-xl[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
278        position: absolute; }
279      .navbar-expand-xl[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
280        padding-right: 0.5rem;
281        padding-left: 0.5rem; }
282    .navbar-expand-xl[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand-xl[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
283      flex-wrap: nowrap; }
284    .navbar-expand-xl[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
285      display: flex !important;
286      flex-basis: auto; }
287    .navbar-expand-xl[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
288      display: none; } }
289
290.navbar-expand[_ngcontent-sc1] {
291  flex-flow: row nowrap;
292  justify-content: flex-start; }
293
294.navbar-expand[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
295    padding-right: 0;
296    padding-left: 0; }
297
298.navbar-expand[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
299    flex-direction: row; }
300
301.navbar-expand[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .dropdown-menu[_ngcontent-sc1] {
302      position: absolute; }
303
304.navbar-expand[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
305      padding-right: 0.5rem;
306      padding-left: 0.5rem; }
307
308.navbar-expand[_ngcontent-sc1]    > .container[_ngcontent-sc1], .navbar-expand[_ngcontent-sc1]    > .container-fluid[_ngcontent-sc1] {
309    flex-wrap: nowrap; }
310
311.navbar-expand[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
312    display: flex !important;
313    flex-basis: auto; }
314
315.navbar-expand[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
316    display: none; }
317
318.navbar-light[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1] {
319  color: rgba(0, 0, 0, 0.9); }
320
321.navbar-light[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1]:focus {
322    color: rgba(0, 0, 0, 0.9); }
323
324.navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
325  color: rgba(0, 0, 0, 0.5); }
326
327.navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:focus {
328    color: rgba(0, 0, 0, 0.7); }
329
330.navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.disabled[_ngcontent-sc1] {
331    color: rgba(0, 0, 0, 0.3); }
332
333.navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .show[_ngcontent-sc1]    > .nav-link[_ngcontent-sc1], .navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .active[_ngcontent-sc1]    > .nav-link[_ngcontent-sc1], .navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.show[_ngcontent-sc1], .navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.active[_ngcontent-sc1] {
334  color: rgba(0, 0, 0, 0.9); }
335
336.navbar-light[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
337  color: rgba(0, 0, 0, 0.5);
338  border-color: rgba(0, 0, 0, 0.1); }
339
340.navbar-light[_ngcontent-sc1]   .navbar-toggler-icon[_ngcontent-sc1] {
341  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
342
343.navbar-light[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1] {
344  color: rgba(0, 0, 0, 0.5); }
345
346.navbar-light[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1] {
347    color: rgba(0, 0, 0, 0.9); }
348
349.navbar-light[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1]:focus {
350      color: rgba(0, 0, 0, 0.9); }
351
352.navbar-dark[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1] {
353  color: #fff; }
354
355.navbar-dark[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1]:focus {
356    color: #fff; }
357
358.navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
359  color: rgba(255, 255, 255, 0.5); }
360
361.navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:focus {
362    color: rgba(255, 255, 255, 0.75); }
363
364.navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.disabled[_ngcontent-sc1] {
365    color: rgba(255, 255, 255, 0.25); }
366
367.navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .show[_ngcontent-sc1]    > .nav-link[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .active[_ngcontent-sc1]    > .nav-link[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.show[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link.active[_ngcontent-sc1] {
368  color: #fff; }
369
370.navbar-dark[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
371  color: rgba(255, 255, 255, 0.5);
372  border-color: rgba(255, 255, 255, 0.1); }
373
374.navbar-dark[_ngcontent-sc1]   .navbar-toggler-icon[_ngcontent-sc1] {
375  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
376
377.navbar-dark[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1] {
378  color: rgba(255, 255, 255, 0.5); }
379
380.navbar-dark[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1] {
381    color: #fff; }
382
383.navbar-dark[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1]   .navbar-text[_ngcontent-sc1]   a[_ngcontent-sc1]:focus {
384      color: #fff; }
385
386.fade[_ngcontent-sc1] {
387  transition: opacity 0.15s linear; }
388
389@media (prefers-reduced-motion: reduce) {
390    .fade[_ngcontent-sc1] {
391      transition: none; } }
392
393.fade[_ngcontent-sc1]:not(.show) {
394    opacity: 0; }
395
396.collapse[_ngcontent-sc1]:not(.show) {
397  display: none; }
398
399.collapsing[_ngcontent-sc1] {
400  position: relative;
401  height: 0;
402  overflow: hidden;
403  transition: height 0.35s ease; }
404
405@media (prefers-reduced-motion: reduce) {
406    .collapsing[_ngcontent-sc1] {
407      transition: none; } }
408
409.logo[_ngcontent-sc1], a.logo[_ngcontent-sc1] {
410  font-family: 'Foundry Gridnik Bold', Verdana, Arial, sans-serif !important;
411  font-size: 28px;
412  letter-spacing: -0.04em;
413  display: inline-block; }
414
415.logo[_ngcontent-sc1]   a[_ngcontent-sc1] {
416  text-decoration: none;
417  color: black; }
418
419a.logo-top[_ngcontent-sc1] {
420  font-size: 22px;
421  letter-spacing: normal;
422  margin-right: 0; }
423
424.nav-main[_ngcontent-sc1] {
425  padding: 15px 0;
426  margin: 0; }
427
428.nav-main[_ngcontent-sc1]   .nav-item[_ngcontent-sc1] {
429  padding: 0 23px; }
430
431.nav-main[_ngcontent-sc1]   .nav-item[_ngcontent-sc1]:last-child {
432    padding-left: 26px;
433    padding-right: 0; }
434
435.nav-main.fixednav[_ngcontent-sc1]   .nav-item[_ngcontent-sc1]:last-child {
436  padding-right: 52px; }
437
438.nav-main[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
439  font-family: 'Proba Pro Md', Verdana, Arial, sans-serif;
440  color: black !important;
441  text-decoration: none;
442  display: block;
443  margin-right: 52px;
444  margin-bottom: 10px;
445  font-size: 15px;
446  font-variant: small-caps;
447  letter-spacing: 3px;
448  border-radius: 20px;
449  padding-right: 3px !important;
450  padding-left: 3px !important; }
451
452.nav-main[_ngcontent-sc1]   .nav-link[_ngcontent-sc1]:last-child {
453  margin-right: 0;
454  display: inline-block; }
455
456@media (min-width: 768px) {
457  .nav-main.mainnav[_ngcontent-sc1]   .nav-main-highlighted[_ngcontent-sc1] {
458    border-radius: 20px;
459    text-decoration: none;
460    border: 1px solid #353535;
461    padding: 9px 17px !important;
462    text-align: center;
463    min-width: 155px;
464    box-sizing: border-box;
465    background: white;
466    position: relative;
467    z-index: 150; }
468  .nav-main[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
469    display: inline-block; }
470  a.logo-top[_ngcontent-sc1] {
471    font-size: 22px;
472    letter-spacing: normal; }
473  .logo-top-expand-sm[_ngcontent-sc1]   .logo-top-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
474    padding-right: 2rem;
475    padding-left: 2rem; } }
476
477@media (max-width: 767.98px) {
478  .nav-main[_ngcontent-sc1]   .navbar-collapse[_ngcontent-sc1] {
479    background-color: white;
480    border-bottom: #e1e1e1 1px solid;
481    z-index: 1500; }
482  .navbar[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1] {
483    margin-left: 30px; }
484  .navbar[_ngcontent-sc1]   .navbar-toggler[_ngcontent-sc1] {
485    margin-right: 20px; }
486  .navbar[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1] {
487    margin-left: 20px; } }
488
489.navbar-toggler[_ngcontent-sc1] {
490  color: black; }
491
492.navbar-light[_ngcontent-sc1]   .navbar-nav[_ngcontent-sc1]   .nav-link[_ngcontent-sc1] {
493  color: rgba(0, 0, 0, 0.87); }
494
495.navbar-nav[_ngcontent-sc1] {
496  margin-left: auto; }
497
498.navbar.mainnav[_ngcontent-sc1] {
499  position: absolute;
500  top: 0;
501  left: 0;
502  right: 0;
503  padding-top: 50px;
504  width: 100%;
505  z-index: 1;
506  height: 100px;
507  margin-left: auto;
508  margin-right: auto; }
509
510@media (min-width: 576px) {
511    .navbar.mainnav[_ngcontent-sc1] {
512      max-width: 540px; } }
513
514@media (min-width: 768px) {
515    .navbar.mainnav[_ngcontent-sc1] {
516      max-width: 720px; } }
517
518@media (min-width: 992px) {
519    .navbar.mainnav[_ngcontent-sc1] {
520      max-width: 960px; } }
521
522@media (min-width: 1200px) {
523    .navbar.mainnav[_ngcontent-sc1] {
524      max-width: 1140px; } }
525
526.navbar.fixednav[_ngcontent-sc1] {
527  position: fixed;
528  z-index: 1500;
529  width: 100%;
530  height: 60px;
531  background-color: white;
532  top: 0;
533  border-bottom: #e1e1e1 1px solid; }
534
535.navbar.fixednav[_ngcontent-sc1]   .navbar-brand[_ngcontent-sc1] {
536  margin-left: 30px; }</style><style ng-transition="smartdec-site">.progressive[_ngcontent-sc2]     img {
537  min-width: 100%; }
538
539.contact-card-en[_ngcontent-sc2] {
540  margin-top: 40px; }
541
542@media (min-width: 576px) {
543    .contact-card-en[_ngcontent-sc2] {
544      width: 420px; } }
545
546.contact-card-en[_ngcontent-sc2]   .contact-logo[_ngcontent-sc2] {
547    margin-top: -4px;
548    margin-right: 0; }
549
550.contact-card-en[_ngcontent-sc2]   .telephone[_ngcontent-sc2]   a[_ngcontent-sc2] {
551    font-size: 20px; }
552
553.contact-card-top-en[_ngcontent-sc2] {
554  padding: 21px 35px 30px 40px;
555  border-bottom: 1px solid #e1e1e1; }
556
557.contact-dep[_ngcontent-sc2] {
558  display: block;
559  margin: 25px 0 3px 0; }
560
561.contact-address-hor[_ngcontent-sc2] {
562  display: inline-block;
563  margin-left: 10px;
564  font-size: 17px; }</style><style ng-transition="smartdec-site"></style><meta name="author" content="smartdec.net"><meta name="keywords" content="audit, development, smart contracts, publications"><meta name="description" content="SmartDec publications"></head>
565<body>
566<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 566-567
566
567<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
567GTM-KZNW26F
vendor: 101 bytes, lines 567-568
567"
568                  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
569<!-- End Google Tag Manager (noscript) -->
570
571  <app-root _nghost-sc0="" ng-version="6.1.9"><app-navbar _ngcontent-sc0="" _nghost-sc1="" class="ng-tns-c1-0"><nav _ngcontent-sc1="" class="navbar navbar-expand-lg navbar-light nav-main mainnav ng-trigger ng-trigger-navState" style=""><a _ngcontent-sc1="" class="navbar-brand logo logo-top" routerlink="/" href="/">SmartDec</a><button _ngcontent-sc1="" class="navbar-toggler" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" data-target="#navbarSupportedContent" data-toggle="collapse" type="button"><span _ngcontent-sc1="" class="navbar-toggler-icon"></span></button><div _ngcontent-sc1="" class="collapse navbar-collapse" id="navbarSupportedContent"><ul _ngcontent-sc1="" class="navbar-nav ml-auto mt-2 mt-lg-0"><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" href="https://blog.smartdec.net/" rel="noopener" target="_blank">blog</a></li><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" routerlink="publications" href="/publications">publications</a></li><li _ngcontent-sc1="" class="nav-item"><!----></li><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link nav-main-highlighted" fragment="contacts" routerlink="" href="/#contacts">contact us</a></li></ul></div></nav></app-navbar><router-outlet _ngcontent-sc0=""></router-outlet><app-publications _nghost-sc8="" class="ng-star-inserted"><div _ngcontent-sc8="" class="container section-title-cont section-title-publications" style="margin-top: 180px;"><h1 _ngcontent-sc8="" class="section-title page-title page-title-publications">Publications</h1><span _ngcontent-sc8="" class="bg-title bg-publications bg-page-publications"></span></div><div _ngcontent-sc8="" class="container bg-publ-div"><div _ngcontent-sc8="" class="cont-1-col"><section _ngcontent-sc8="" class="card publications-card"><div _ngcontent-sc8="" class="card-top grayscale progressive replace" data-href="images/bg_publ_en.jpg"><img _ngcontent-sc8="" alt="image" class="preview" src="images/bg_publ_en_tiny.jpg"><h2 _ngcontent-sc8="" class="card-title card-title-publ">In English</h2></div><div _ngcontent-sc8="" class="card-bot card-bot-publ"><ol _ngcontent-sc8="" class="publ-ol"><li _ngcontent-sc8="">Sergei Tikhomirov [University of Luxembourg], Ekaterina Voskresenskaya, Ivan Ivanitskiy, Ramil Takhaviev, Evgeny Marchenko, Yaroslav Alexandrov. <strong _ngcontent-sc8="">SmartCheck: Static Analysis of Ethereum Smart Contracts.</strong> ICSE WETSEB, Gothenburg 2018. [<a _ngcontent-sc8="" href="http://orbilu.uni.lu/handle/10993/35862">link</a>]</li><li _ngcontent-sc8="">Egor Fominykh, Lenar Safin, Yaroslav Alexandrov. <strong _ngcontent-sc8="">Analysing iOS apps: road from AppStore to security analysis report.</strong> REcon, Brussels 2017. [<a _ngcontent-sc8="" href="https://recon.cx/2017/brussels/resources/slides/RECON-BRX-2017-Analysing_ios_Apps.pdf">PDF</a>]</li><li _ngcontent-sc8="">Aleksandrov Y., Safin L., Troshina K., Chernov A. <strong _ngcontent-sc8="">Static Binary Analysis of Mobile Applications for the Android Platform, According to the Requirements of Information Security.</strong> Moscow University Computational Mathematics and Cybernetics (ISSN 0278-6419). 2016, N 3. pp 141-146.</li><li _ngcontent-sc8="">A. Chernov and K. Troshina. <strong _ngcontent-sc8="">Reverse engineering of binary programs for custom virtual machines.</strong> Recon conference. Montreal, Canada. 14-16 June 2012. [<a _ngcontent-sc8="" href="https://recon.cx/2012/schedule/attachments/40_Chernov-Troshina.pdf">presentation</a>]</li><li _ngcontent-sc8="">A. Fokin, E. Derevenetc, A. Chernov and K. Troshina. <strong _ngcontent-sc8="">SmartDec: Approaching C++ Decompilation.</strong> In Proceedings of 18th Working Conference on Reverse Engineering. Limerick, Ireland. 17-20 October 2011, pp. 347-356. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/6079860/">IEEE</a>]</li><li _ngcontent-sc8="">K. Troshina, Y. Derevenets and A. Chernov. <strong _ngcontent-sc8="">Reconstruction of composite types for Decompilation.</strong> In Proceedings of 10th IEEE International Working Conference on Source Code Analysis and Manipulation. Timisoara, Romania. 12-13 September 2010, pp. 179-188. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5601851/">IEEE</a>]</li><li _ngcontent-sc8="">
571A. Fokin, K. Troshina and A. Chernov. <strong _ngcontent-sc8="">Reconstruction of Class Hierarchies for Decompilation of C++ Programs.</strong> In Proceedings of 14th European Conference on Software Maintenance and Reengineering, March 2010. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5714442/">IEEE</a>]</li><li _ngcontent-sc8="">K. Troshina, A. Chernov and Y. Derevenets. <strong _ngcontent-sc8="">C Decompilation: Is It Possible?</strong> In Proceedings of International Workshop on Program Understanding. Altai Mountains, Russia. 19-23 June 2009, pp. 18-27.</li><li _ngcontent-sc8="">K. Troshina and A. Chernov. <strong _ngcontent-sc8="">High-Level Composite Type Reconstruction During Decompilation from Assembly Programs.</strong> In Proceedings of 7th Perspectives of System Informatics. Akademgorodok, Novosibirsk, Russia, 15-19 June 2009, pp. 292-299.</li><li _ngcontent-sc8="">K. Troshina, A. Chernov and A. Fokin. <strong _ngcontent-sc8="">Profile-Based Type Reconstruction for Decompilation.</strong> In Proceedings of IEEE 17th International Conference on Program Comprehension. Vancouver, Canada, 17-19 May 2009, pp. 263-267. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5090054/">IEEE</a>]</li><li _ngcontent-sc8="">K. Dolgova, A. Chernov. <strong _ngcontent-sc8="">Automatic Type Reconstruction in Disassembled C Programs.</strong> In Proceedings of IEEE 15th Working Conference on Reverse Engineering 2008. Antwerp, Belgium, October 2008, рр. 202-206. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/4656411/">IEEE</a>]</li></ol></div></section></div></div></app-publications><app-footer _ngcontent-sc0="" id="contacts" _nghost-sc2=""><footer _ngcontent-sc2="" class="gradient-border mt-md-5"><div _ngcontent-sc2="" appmap="" id="footer-back" style="height: 600px"></div><!----><!----><div _ngcontent-sc2="" class="cont footer-cont ng-star-inserted"><div _ngcontent-sc2="" class="card-border contact-card contact-card-en"><div _ngcontent-sc2="" class="contact-card-top-en" itemscope="" itemtype="http://schema.org/Organization"><span _ngcontent-sc2="" class="logo contact-logo" itemprop="name">SmartDec</span><span _ngcontent-sc2="" class="contact-phone" itemprop="telephone"><strong _ngcontent-sc2="">+7 (499) 750–03–27</strong></span><br _ngcontent-sc2=""><a _ngcontent-sc2="" class="contact-email" href="mailto:[email protected]" itemprop="email" rel="noopener" target="_blank"><strong _ngcontent-sc2="">[email protected]</strong></a></div><div _ngcontent-sc2="" class="contact-card-bot"><div _ngcontent-sc2="" class="contact-bot-left"><a _ngcontent-sc2="" class="contact-email" href="mailto:[email protected]" itemprop="email" rel="noopener" target="_blank"><strong _ngcontent-sc2="">[email protected]</strong></a></div></div></div></div></footer></app-footer></app-root>
572<script type="text/javascript" src="/runtime.6793fd3703c0e4a51900.js"></script>
572<script type="text/javascript" src="/polyfills.be4d8e30f39bc39f66bb.js"></script>
572<script type="text/javascript" src="/scripts.8c8a3b7556a03e2f1c44.js"></script>
572<script type="text/javascript" src="/main.3d0c99a52c1db0715a14.js"></script>
572
573
574<script id="smartdec-site-state" type="application/json">{}</script>
574</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.