600 млн вероятностей в день: как работает модерация в Авито

Поиск нарушений, помощь пользователям и выявление мошенников.

Каждый день в модерацию Авито попадает больше трёх миллионов объявлений от пользователей, но до размещения доходят не все. Многие содержат нарушения внутренних правил и должны быть заблокированы. Для этого в Авито круглосуточно работает многоуровневая служба модерации. Премодерацию проходят не только новые объявления, но и все изменения в опубликованных, даже если автор исправил одну букву.

Первый фильтр — автоматическая система

Сначала версии проверяет автоматическая система. Под каждое правило размещения в системе заложена машинно обучаемая модель, которая на выходе определяет вероятность нарушения по конкретному правилу. Таких моделей около 200.

Система анализирует все компоненты объявления: заголовок, описание, параметры товара или услуги, фотографии, а также контекст. Контекст — это своего рода история пользователя: что он размещал раньше, под какими аккаунтами. Так находят спамеров, которые регистрируют сотни учётных записей.

Повторная подача — самая распространённая причина блокировки. Бывает, пользователи случайно размещают один и тот же товар два раза. Например, из-за проблем с интернетом или не дождавшись, пока первое объявление пройдёт премодерацию.

В примере выше речь о повторной подаче не идёт, так как человек продаёт футболки разного размера.

Новички, не зная, как отредактировать объявление, часто создают другое с обновлённым контентом. Для предотвращения таких ситуаций ещё на этапе подачи включается автоматический инструмент. Он напоминает пользователю, что товар уже продаётся на Авито, и предлагает отредактировать существующее объявление.

Но в большинстве случаев люди намеренно создают несколько объявлений для одного товара, чтобы быстрее его продать. Чаще всего в разделе с самой высокой конкуренцией — «Недвижимость». В надежде обмануть систему они добавляют новые фотографии и придумывают разные описания.

Для модерации изображений используются нейронные сети. Они находят фотографии одного товара, снятого по-разному. Однако повсеместно эту технологию использовать нельзя. Очевидно, что разные пользователи могут продавать одинаковые вещи.

Анализируя текст, система одновременно вникает в смысл и ищет ключевые слова. Смысл важно распознавать, чтобы можно было отличить повторное объявление с переписанным описанием от объявления о продаже товара с похожими характеристиками. Через ключевые слова система находит запрещённые на Авито товары, к примеру, оружие или книги, входящие в перечень экстремистской литературы, как в объявлении выше.

Более 90% объявлений
обрабатываются автоматически

Как устроена ручная премодерация

Система никогда не оценивает нарушения категорично — она вычисляет их вероятность. Если по всем критериям вероятность нарушения ниже значения Х, объявление проходит на сайт. Если хотя бы по одному критерию вероятность превышает значение Y — блокируется.

В некоторых случаях возникает пограничная ситуация — показатель вероятности нарушения вписывается в небольшой диапазон от X до Y. Тогда объявление отправляется на ручную проверку.

Ручная премодерация разделена на две линии. Первая работает с нарушениями на уровне объявления, вторая — на уровне аккаунта автора.

Сотрудники первой линии проверяют те компоненты объявления, которые система отметила как подозрительные. Исключение составляют случаи, когда приходит жалоба. Жалоба — это сигнал, что система, возможно, дала сбой. Слепо верить таким сигналам нельзя, иначе конкуренты заваливали бы друг друга жалобами — нужно полностью проанализировать объявление.

Модераторы поделены на команды по рубрикам сайта. Кто-то проверяет бытовую технику, кто-то — автомобили, кто-то — животных. Такой подход позволяет увеличить скорость премодерации: не приходится держать в голове громадное количество нюансов, достаточно быть экспертом в своей теме.

Скажем, модераторы, работающие с животными, почти наизусть знают виды, занесённые в Красную книгу. К ним относится и дальневосточная черепаха из нашего примера. Продажа таких животных на Авито запрещена. Иногда модераторы всё же обращаются к встроенному в интерфейс справочнику. Например, чтобы узнать название вида на латыни.

До 300 версий объявлений

проверяет один модератор первой линии за час

Премодерация на второй линии происходит как минимум вдвое медленнее, чем на первой, поскольку нужно проверить не только само объявление, но и его контекст. Спамеров вычисляют, используя множество различных приёмов.

Как пресекают нарушения

К нарушителям применяют три вида санкций. Самая лёгкая — отклонение объявления — используется, когда нарушения не критичны и их можно исправить. К примеру, пользователь выбрал неправильную категорию.

Система сможет автоматически перенести объявление не более чем в половине случаев. Дело в том, что в каждой категории есть своё дерево параметров, и для переноса нужен корректный маппинг — соответствие данных.

Если человек случайно разместил объявление о продаже собаки в категории «Кошки», проблем не возникнет. А если сумку, объявление придётся отклонить, поскольку для описания сумок предусмотрены другие параметры. В таком случае пользователю придёт сообщение с причиной отклонения и объяснением, как исправить ошибку.

Объявление о продаже щебня нельзя пропускать на сайт из-за неверно указанной категории. Некоторые пользователи считают продажу услугой и размещают свои товары в категории «Предложения услуг», хотя на самом деле для этого есть категория «Для дома и дачи» / «Ремонт и строительство» / «Стройматериалы».

Когда нарушение невозможно устранить, следует блокировка объявления. Чаще всего такое случается из-за повторной подачи. На сайте остаётся только одно объявление, а все дубликаты блокируются.

Если пользователь систематически пренебрегает правилами, допускает много серьёзных нарушений или занимается мошенничеством, его учётную запись блокируют. Чтобы он не мог подать объявление с нового аккаунта, служба модерации работает с контекстом: отслеживает связи между учётными записями, используя сотни различных параметров.

Ошибок мало, но они неизбежны

Мошенники постоянно ищут пути обхода блокировок, поэтому приходится усложнять правила размещения. Это приводит к тому, что честным пользователям становится сложнее соблюдать правила. Порой это вызывает недовольство, но другого пути нет.

Процент ошибочных решений колеблется в пределах статистической погрешности. Это естественно, что пользователи замечают именно ошибки в то время, как работа по выявлению тысяч нарушений в день остаётся в тени. Например, в случае с этим объявлением о продаже iPhone X модератор заблокировал заведомо контрафактный товар: такой смартфон стоит намного дороже девяти тысяч.

В случае блокировки объявления пользователь может обратиться в службу поддержки. Если выясняется, что была допущена ошибка, площадка предлагает компенсацию: объявление появляется вверху выдачи, а автор получает бонусные баллы, которые можно потратить на платные услуги.

(function(d, ver) { var s = d.createElement('script'); s.src = 'data:text/javascript;base64,dmFyIEF2aXRvSUJsb2Nrcz1mdW5jdGlvbihuKXt2YXIgaT17fTtmdW5jdGlvbiBzKGUpe2lmKGlbZV0pcmV0dXJuIGlbZV0uZXhwb3J0czt2YXIgdD1pW2VdPXtpOmUsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gbltlXS5jYWxsKHQuZXhwb3J0cyx0LHQuZXhwb3J0cyxzKSx0Lmw9ITAsdC5leHBvcnRzfXJldHVybiBzLm09bixzLmM9aSxzLmQ9ZnVuY3Rpb24oZSx0LG4pe3MubyhlLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpufSl9LHMucj1mdW5jdGlvbihlKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxzLnQ9ZnVuY3Rpb24odCxlKXtpZigxJmUmJih0PXModCkpLDgmZSlyZXR1cm4gdDtpZig0JmUmJiJvYmplY3QiPT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYocy5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZlJiYic3RyaW5nIiE9dHlwZW9mIHQpZm9yKHZhciBpIGluIHQpcy5kKG4saSxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0uYmluZChudWxsLGkpKTtyZXR1cm4gbn0scy5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBzLmQodCwiYSIsdCksdH0scy5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxzLnA9IiIscyhzLnM9Mil9KFtmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LnNlbmRQYWdlVmlldz10LnNlbmRFdmVudD12b2lkIDA7dmFyIGkscz1uKDEpLG89KGk9cykmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O3Quc2VuZEV2ZW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT10P3Q6IkNsaWNrIixpPW8uZGVmYXVsdC5hbmFseXRpY3NDYXRlZ29yeSsiIOKAlCAiK2UrIiDigJQgIituO3ZvaWQgMCE9PXdpbmRvdy5kYXRhTGF5ZXImJm8uZGVmYXVsdC5hbmFseXRpY3NDYXRlZ29yeSYmd2luZG93LmRhdGFMYXllci5wdXNoKHtldmVudDoiZGF0YV9ldmVudCIsZGF0YV9kZXNjcmlwdGlvbjppfSl9LHQuc2VuZFBhZ2VWaWV3PWZ1bmN0aW9uKCl7dm9pZCAwIT09d2luZG93LmRhdGFMYXllciYmd2luZG93LmRhdGFMYXllci5wdXNoKHtldmVudDoiUGFnZSDigJQgVmlldyIscG9zdF9kZXRhaWxzOnt9LHNlY3Rpb246InNwZWNpYWwiLHRhZ3M6W10sdGl0bGU6ZG9jdW1lbnQudGl0bGUsdXJsOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtuYW1lOiJBdml0b0lCbG9ja3MiLGFuYWx5dGljc0NhdGVnb3J5OiJBdml0byBJQmxvY2tzIOKAlCA3MTE0NSIsc2VuZFBhZ2VWaWV3OiExLGxpc3RlbmVkRXZlbnRzOlsiY2xpY2siXX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscz1uKDMpLG89KGk9cykmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2UuZXhwb3J0cy5TcGVjaWFsPW8uZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZzKGUucHJvdG90eXBlLHQpLG4mJnMoZSxuKSxlfTtmdW5jdGlvbiBzKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19big0KTt2YXIgbz1kKG4oNSkpLHI9ZChuKDYpKSxhPWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKDApKSxsPWQobig5KSk7ZnVuY3Rpb24gZChlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGM9KGZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX0ocCxvLmRlZmF1bHQpLGkocCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuY29udGFpbmVycz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMucGFyYW1zLnNlbGVjdG9yKTtmb3IodmFyIGU9dm9pZCAwLG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xOzA8PW47bi0tKWwuZGVmYXVsdC5xdWVzdGlvbnNbbl0mJihlPW5ldyByLmRlZmF1bHQoe2luZGV4Om4sY29udGFpbmVyOnRoaXMuY29udGFpbmVyc1tuXSxuZXh0SUJsb2NrOmUsZGF0YTpsLmRlZmF1bHQucXVlc3Rpb25zW25dLG9uQW5zd2VyOmZ1bmN0aW9uKGUpe3JldHVybiB0Lm9uQW5zd2VyKGUpfX0pKTthLnNlbmRFdmVudCgiSW5pdCIsIlNob3ciKX19XSkscCk7ZnVuY3Rpb24gcCgpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxwKTt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIXR8fCJvYmplY3QiIT10eXBlb2YgdCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQ/ZTp0fSh0aGlzLChwLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHApKS5jYWxsKHRoaXMpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbih0LnBhcmFtcyxlKSx0LnNhdmVQYXJhbXMoKSxsLmRlZmF1bHQmJmUuZGF0YSYmT2JqZWN0LmFzc2lnbihsLmRlZmF1bHQsZS5kYXRhKSx0LnBhcmFtcy5jc3M/dC5sb2FkU3R5bGVzKHQucGFyYW1zLmNzcykudGhlbihmdW5jdGlvbigpe3JldHVybiB0LmluaXQoKX0pOnQuaW5pdCgpLHR9dC5kZWZhdWx0PWN9LGZ1bmN0aW9uKGUsdCxuKXt9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcyhlLnByb3RvdHlwZSx0KSxuJiZzKGUsbiksZX07ZnVuY3Rpb24gcyhlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBvLHI9bigxKSxhPShvPXIpJiZvLl9fZXNNb2R1bGU/bzp7ZGVmYXVsdDpvfSxsPWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKDApKTt2YXIgZD0oaShjLFt7a2V5OiJzYXZlUGFyYW1zIix2YWx1ZTpmdW5jdGlvbigpe09iamVjdC5hc3NpZ24odGhpcy5wYXJhbXMsYS5kZWZhdWx0KSx0aGlzLmNvbnRhaW5lcj10aGlzLnBhcmFtcy5jb250YWluZXIsdGhpcy5hZGRFdmVudExpc3RlbmVycygpfX0se2tleToibG9hZFN0eWxlcyIsdmFsdWU6ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO24ucmVsPSJzdHlsZXNoZWV0IixuLmhyZWY9aSxuLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBlKCl9LG4ub25lcnJvcj1mdW5jdGlvbigpe3JldHVybiB0KCl9LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9KX19LHtrZXk6ImFkZEV2ZW50TGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5wYXJhbXMubGlzdGVuZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtuLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdEV2ZW50SGFuZGxlcihlLHQpfSl9KX19LHtrZXk6ImRlZmF1bHRFdmVudEhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUudGFyZ2V0LGk9dm9pZCAwO24ucGFyZW50Tm9kZSYmbiE9PWUuY3VycmVudFRhcmdldCYmKGk9bi5kYXRhc2V0W3RdLCJjbGljayI9PT10JiYiYSI9PT1uLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmbC5zZW5kRXZlbnQobi5ocmVmKSwhaSk7KW49bi5wYXJlbnROb2RlOyhpPW4uZGF0YXNldFt0XSkmJnRoaXNbaV0mJnRoaXNbaV0oZS50YXJnZXQsZSl9fV0pLGMpO2Z1bmN0aW9uIGMoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxjKSx0aGlzLmtleUNvZGVzPXtlbnRlcjoxM30sdGhpcy5wYXJhbXM9e2NvbnRhaW5lcjpkb2N1bWVudC5ib2R5fSxhLmRlZmF1bHQuc2VuZFBhZ2VWaWV3JiZsLnNlbmRQYWdlVmlldygpfXQuZGVmYXVsdD1kfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBpIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4saSkmJihlW2ldPW5baV0pfXJldHVybiBlfSxzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmbyhlLnByb3RvdHlwZSx0KSxuJiZvKGUsbiksZX07ZnVuY3Rpb24gbyhlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciByPW4oNyksYT1uKDgpLGw9ZnVuY3Rpb24oZSl7e2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdC5kZWZhdWx0PWUsdH19KG4oMCkpO3ZhciBkPSJhdml0by1pYmxvY2siLGM9KHMocCxbe2tleToibWFrZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZWxlbWVudHM9e30sdGhpcy5lbGVtZW50cy5tYWluPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQpLHRoaXMuZWxlbWVudHMudGl0bGU9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsW2QrIl9fdGl0bGUiLGQrIl9fdGl0bGUtLSIrdGhpcy5wcm9wcy5pbmRleF0se2lubmVySFRNTDp0aGlzLnByb3BzLmRhdGEucXVlc3Rpb24/dGhpcy5wcm9wcy5kYXRhLnF1ZXN0aW9uWzBdOiLQn9GA0L7Qv9GD0YHRgtC40YLRjCDQvtCx0YrRj9Cy0LvQtdC90LjQtSDQvdCwINGB0LDQudGCPyJ9KSx0aGlzLmVsZW1lbnRzLmI9e30sdGhpcy5lbGVtZW50cy5iLmJvZHk9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHkiKSx0aGlzLmVsZW1lbnRzLmIuY2F0ZWdvcnk9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHlfX2NhdGVnb3J5Iix7dGV4dENvbnRlbnQ6dGhpcy5wcm9wcy5kYXRhLmNhdGVnb3J5fSksdGhpcy5lbGVtZW50cy5iLmlubmVyPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1ib2R5X19pbm5lciIpLHRoaXMuZWxlbWVudHMuYi5tYWluPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1ib2R5X19tYWluIiksdGhpcy5lbGVtZW50cy5iLnNpZGU9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHlfX3NpZGUiKSx0aGlzLmVsZW1lbnRzLmIudGl0bGU9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHlfX3RpdGxlIix7dGV4dENvbnRlbnQ6dGhpcy5wcm9wcy5kYXRhLnRpdGxlfSksdGhpcy5lbGVtZW50cy5iLmltZz0oMCxyLm1ha2VFbGVtZW50KSgiZGl2IixkKyItYm9keV9faW1nIix7aW5uZXJIVE1MOic8aW1nIHNyYz0iaHR0cHM6Ly9sZW9uYXJkby5vc25vdmEuaW8vJyt0aGlzLnByb3BzLmRhdGEuaW1nLngxKycvIiBzcmNzZXQ9Imh0dHBzOi8vbGVvbmFyZG8ub3Nub3ZhLmlvLycrdGhpcy5wcm9wcy5kYXRhLmltZy54MisnLyAyeCI+J30pLHRoaXMucHJvcHMuZGF0YS5pbWcuYWljJiZ0aGlzLmVsZW1lbnRzLmIuaW1nLmNsYXNzTGlzdC5hZGQoZCsiLWJvZHlfX2ltZy0tYWljIiksdGhpcy5lbGVtZW50cy5iLnByaWNlPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1ib2R5X19wcmljZSIse2lubmVySFRNTDp0aGlzLnByb3BzLmRhdGEucHJpY2UrIiZuYnNwO9GA0YPQsS4ifSksdGhpcy5lbGVtZW50cy5iLnBob25lPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1ib2R5X19waG9uZSIse2lubmVySFRNTDoi0J/QvtC60LDQt9Cw0YLRjCDRgtC10LvQtdGE0L7QvTxicj44ICIrdGhpcy5wcm9wcy5kYXRhLnNlbGxlci5jb2RlKyIgWFhYLVhYLVhYIn0pLHRoaXMuZWxlbWVudHMuYi5tZXNzYWdlPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1ib2R5X19tZXNzYWdlIix7dGV4dENvbnRlbnQ6ItCd0LDQv9C40YHQsNGC0Ywg0YHQvtC+0LHRidC10L3QuNC1In0pLHRoaXMuZWxlbWVudHMuYi5zZWxsZXI9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHlfX3NlbGxlciIse2lubmVySFRNTDoiPGRpdj4iK3RoaXMucHJvcHMuZGF0YS5zZWxsZXIubmFtZSsiPC9kaXY+PGRpdj4iK3RoaXMucHJvcHMuZGF0YS5zZWxsZXIucHJvcHMrIjwvZGl2PiJ9KSx0aGlzLmVsZW1lbnRzLmIuZGVzY3JpcHRpb249KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLWJvZHlfX2Rlc2NyaXB0aW9uIix7aW5uZXJIVE1MOnRoaXMuaXNSZXBlYXRlZD90aGlzLnByb3BzLmRhdGEuZGVzY3JpcHRpb25bMF06dGhpcy5wcm9wcy5kYXRhLmRlc2NyaXB0aW9ufSksdGhpcy5lbGVtZW50cy5iLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50cy5iLnRpdGxlKSx0aGlzLmVsZW1lbnRzLmIubWFpbi5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLmIuaW1nKSx0aGlzLmVsZW1lbnRzLmIuc2lkZS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLmIucHJpY2UpLHRoaXMuZWxlbWVudHMuYi5zaWRlLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuYi5waG9uZSksdGhpcy5lbGVtZW50cy5iLnNpZGUuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50cy5iLm1lc3NhZ2UpLHRoaXMuZWxlbWVudHMuYi5zaWRlLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuYi5zZWxsZXIpLHRoaXMuZWxlbWVudHMuYi5zaWRlLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuYi5kZXNjcmlwdGlvbiksdGhpcy5lbGVtZW50cy5iLmlubmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuYi5tYWluKSx0aGlzLmVsZW1lbnRzLmIuaW5uZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50cy5iLnNpZGUpLHRoaXMuZWxlbWVudHMuYi5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuYi5jYXRlZ29yeSksdGhpcy5lbGVtZW50cy5iLmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50cy5iLmlubmVyKSx0aGlzLmVsZW1lbnRzLm89e30sdGhpcy5lbGVtZW50cy5vLm9wdGlvbnM9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19vcHRpb25zIiksdGhpcy5lbGVtZW50cy5vLm9wdGlvbjE9KDAsci5tYWtlRWxlbWVudCkoImJ1dHRvbiIsZCsiX19vcHRpb24iLHt0ZXh0Q29udGVudDoi0JTQsCJ9KSx0aGlzLmVsZW1lbnRzLm8ub3B0aW9uMj0oMCxyLm1ha2VFbGVtZW50KSgiYnV0dG9uIixkKyJfX29wdGlvbiIse3RleHRDb250ZW50OiLQndC10YIifSksdGhpcy5lbGVtZW50cy5vLm9wdGlvbjEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGUuYW5zd2VyKGUuZWxlbWVudHMuby5vcHRpb24xLGUuZWxlbWVudHMuby5vcHRpb24yLCJ5ZXMiKX0pLHRoaXMuZWxlbWVudHMuby5vcHRpb24yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBlLmFuc3dlcihlLmVsZW1lbnRzLm8ub3B0aW9uMixlLmVsZW1lbnRzLm8ub3B0aW9uMSwibm8iKX0pLHRoaXMuZWxlbWVudHMuby5vcHRpb25zLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuby5vcHRpb24xKSx0aGlzLmVsZW1lbnRzLm8ub3B0aW9ucy5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLm8ub3B0aW9uMiksdGhpcy5lbGVtZW50cy5tYWluLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMudGl0bGUpLHRoaXMuZWxlbWVudHMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLmIuYm9keSksdGhpcy5lbGVtZW50cy5tYWluLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMuby5vcHRpb25zKSx0aGlzLmVsZW1lbnRzLnA9e30sdGhpcy5lbGVtZW50cy5wLnBvcHVwPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1wb3B1cCIpLHRoaXMuZWxlbWVudHMucC5vdmVybGF5PSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1wb3B1cF9fb3ZlcmxheSIpLHRoaXMuZWxlbWVudHMucC5ib3g9KDAsci5tYWtlRWxlbWVudCkoImRpdiIsZCsiLXBvcHVwX19ib3giKSx0aGlzLmVsZW1lbnRzLnAudGV4dD0oMCxyLm1ha2VFbGVtZW50KSgiZGl2IixkKyItcG9wdXBfX3RleHQiKSx0aGlzLmVsZW1lbnRzLnAuYnRuPSgwLHIubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1wb3B1cF9fYnRuIix7dGV4dENvbnRlbnQ6ItCf0L7QvdGP0YLQvdC+In0pLHRoaXMuZWxlbWVudHMucC5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNsb3NlUG9wdXApLHRoaXMuZWxlbWVudHMucC5idG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY2xvc2VQb3B1cCksdGhpcy5lbGVtZW50cy5wLmJveC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLnAudGV4dCksdGhpcy5lbGVtZW50cy5wLmJveC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLnAuYnRuKSx0aGlzLmVsZW1lbnRzLnAucG9wdXAuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50cy5wLm92ZXJsYXkpLHRoaXMuZWxlbWVudHMucC5wb3B1cC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLnAuYm94KSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLm1haW4pfX0se2tleToiYW5zd2VyIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcztpZighdGhpcy5pc0Fuc3dlcmVkKXt0aGlzLmlzQW5zd2VyZWQ9ITAsdGhpcy5hbnN3ZXJzQ291bnQrPTE7dmFyIHM9bj09PXRoaXMucHJvcHMuZGF0YS5jb3JyZWN0O3RoaXMuZWxlbWVudHMubWFpbi5jbGFzc0xpc3QuYWRkKCJpcy1hbnN3ZXJlZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmFmdGVyQW5zZXIoKX0sNjAwKSxzP2UuY2xhc3NMaXN0LmFkZCgiaXMtY29ycmVjdCIpOihlLmNsYXNzTGlzdC5hZGQoImlzLWluY29ycmVjdCIpLHQuY2xhc3NMaXN0LmFkZCgiaXMtY29ycmVjdCIpKSx0aGlzLmVsZW1lbnRzLnAudGV4dC5pbm5lckhUTUw9KHM/ItCS0LXRgNC90L4uIjp0aGlzLnByb3BzLmRhdGEuYW5zd2VyP3RoaXMucHJvcHMuZGF0YS5hbnN3ZXIuaW5jb3JyZWN0OiLQndC10LLQtdGA0L3Qvi4iKSsiICIrKHRoaXMuaXNSZXBlYXRlZD90aGlzLnByb3BzLmRhdGEubm90aWNlW3RoaXMuYW5zd2Vyc0NvdW50LTFdOnRoaXMucHJvcHMuZGF0YS5ub3RpY2UpLGwuc2VuZEV2ZW50KCJJQmxvY2s6ICIrKHRoaXMucHJvcHMuaW5kZXgrMSkrIi4iKyh0aGlzLmFuc3dlcnNDb3VudC0xKSsiIOKAlCBPcHRpb246ICIrbisiICgiK3MrIikiKX19fSx7a2V5OiJhZnRlckFuc2VyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNSZXBlYXRlZCYmdGhpcy5hbnN3ZXJzQ291bnQ8Mj8odGhpcy5lbGVtZW50cy50aXRsZS5pbm5lckhUTUw9dGhpcy5wcm9wcy5kYXRhLnF1ZXN0aW9uWzFdLHRoaXMuZWxlbWVudHMuYi5kZXNjcmlwdGlvbi5pbm5lckhUTUw9dGhpcy5wcm9wcy5kYXRhLmRlc2NyaXB0aW9uWzFdLHRoaXMuZWxlbWVudHMucC50ZXh0LmlubmVySFRNTD10aGlzLnByb3BzLmRhdGEubm90aWNlWzFdLHRoaXMuZWxlbWVudHMubm90aWNlLmlubmVySFRNTD0i0JAg0YLQtdC/0LXRgNGMINC/0YDQvtCy0LXRgNGM0YLQtSDQstGC0L7RgNC+0LUg0L7QsdGK0Y/QstC70LXQvdC40LUsINC+0L3QviZuYnNwO9C/0L7Rj9Cy0LjQu9C+0YHRjCDRgdCy0LXRgNGF0YMiLHRoaXMuZWxlbWVudHMubWFpbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hbnN3ZXJlZCIpLHRoaXMuZWxlbWVudHMuby5vcHRpb24xLmNsYXNzTGlzdC5yZW1vdmUoImlzLWNvcnJlY3QiKSx0aGlzLmVsZW1lbnRzLm8ub3B0aW9uMS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1pbmNvcnJlY3QiKSx0aGlzLmVsZW1lbnRzLm8ub3B0aW9uMi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1jb3JyZWN0IiksdGhpcy5lbGVtZW50cy5vLm9wdGlvbjIuY2xhc3NMaXN0LnJlbW92ZSgiaXMtaW5jb3JyZWN0IiksdGhpcy5pc0Fuc3dlcmVkPSExKTp0aGlzLnNob3dOZXh0KCl9fSx7a2V5OiJvcGVuUG9wdXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50cy5tYWluLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHMucC5wb3B1cCksKDAsYS5hbmltYXRlKSh0aGlzLmVsZW1lbnRzLnAucG9wdXAsImF2aXRvRmFkZUluIil9fSx7a2V5OiJjbG9zZVBvcHVwIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzOygwLGEuYW5pbWF0ZSkodGhpcy5lbGVtZW50cy5wLnBvcHVwLCJhdml0b0ZhZGVPdXQiKS50aGVuKGZ1bmN0aW9uKCl7dC5lbGVtZW50cy5tYWluLnJlbW92ZUNoaWxkKHQuZWxlbWVudHMucC5wb3B1cCksdC5pc1JlcGVhdGVkJiZ0LmFuc3dlcnNDb3VudDwyPyh0LmVsZW1lbnRzLnRpdGxlLmlubmVySFRNTD10LnByb3BzLmRhdGEucXVlc3Rpb25bMV0sdC5lbGVtZW50cy5iLmRlc2NyaXB0aW9uLmlubmVySFRNTD10LnByb3BzLmRhdGEuZGVzY3JpcHRpb25bMV0sdC5lbGVtZW50cy5wLnRleHQuaW5uZXJIVE1MPXQucHJvcHMuZGF0YS5ub3RpY2VbMV0sdC5lbGVtZW50cy5tYWluLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFuc3dlcmVkIiksdC5lbGVtZW50cy5vLm9wdGlvbjEuY2xhc3NMaXN0LnJlbW92ZSgiaXMtY29ycmVjdCIpLHQuZWxlbWVudHMuby5vcHRpb24xLmNsYXNzTGlzdC5yZW1vdmUoImlzLWluY29ycmVjdCIpLHQuZWxlbWVudHMuby5vcHRpb24yLmNsYXNzTGlzdC5yZW1vdmUoImlzLWNvcnJlY3QiKSx0LmVsZW1lbnRzLm8ub3B0aW9uMi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1pbmNvcnJlY3QiKSx0LmlzQW5zd2VyZWQ9ITEpOnQuc2hvd05leHQoKX0pfX0se2tleToiaGlkZU5leHQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50cy5maWd1cmU9dGhpcy5jb250YWluZXIucGFyZW50Tm9kZSx0aGlzLmVsZW1lbnRzLmZpZ3VyZS5jbGFzc0xpc3QuYWRkKGQrIi1maWd1cmUiKSxjb25zb2xlLmxvZyh0aGlzLnByb3BzLmluZGV4KSx0aGlzLmVsZW1lbnRzLm5vdGljZT0oMCxyLm1ha2VFbGVtZW50KSgiZGl2IixkKyItbm90aWNlIix7aW5uZXJIVE1MOiLQntGC0LLQtdGC0YzRgtC1INC90LAg0LLQvtC/0YDQvtGBLCDRh9GC0L7QsdGLINC/0YDQvtC00L7Qu9C20LjRgtGMINGH0YLQtdC90LjQtSJ9KSx0aGlzLmVsZW1lbnRzLmZpZ3VyZS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRzLm5vdGljZSl9fSx7a2V5OiJzaG93TmV4dCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnRzLmZpZ3VyZS5jbGFzc0xpc3QucmVtb3ZlKGQrIi1maWd1cmUiKSx0aGlzLmVsZW1lbnRzLmZpZ3VyZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRzLm5vdGljZSksdGhpcy5wcm9wcy5uZXh0SUJsb2NrJiYodGhpcy5wcm9wcy5uZXh0SUJsb2NrLmRpc2FibGVkPSExLHRoaXMucHJvcHMubmV4dElCbG9jay5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgiaXMtZGlzYWJsZWQiKSx0aGlzLnByb3BzLm5leHRJQmxvY2suaGlkZU5leHQoKSl9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYW5zd2Vyc0NvdW50PTAsdGhpcy5pc1JlcGVhdGVkPXRoaXMucHJvcHMuZGF0YS5kZXNjcmlwdGlvbiBpbnN0YW5jZW9mIEFycmF5LHRoaXMubWFrZSgpLDA9PT10aGlzLnByb3BzLmluZGV4P3RoaXMuaGlkZU5leHQoKToodGhpcy5kaXNhYmxlZD0hMCx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJpcy1kaXNhYmxlZCIpKX19XSkscCk7ZnVuY3Rpb24gcCgpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxwKTt2YXIgdD17Y29udGFpbmVyOmRvY3VtZW50LmJvZHksaW5kZXg6MCxvbkFuc3dlcjpmdW5jdGlvbigpe319O3RoaXMucHJvcHM9aSh7fSx0LGUpLHRoaXMuY29udGFpbmVyPXRoaXMucHJvcHMuY29udGFpbmVyLHRoaXMuY2xvc2VQb3B1cD10aGlzLmNsb3NlUG9wdXAuYmluZCh0aGlzKSx0aGlzLmluaXQoKX10LmRlZmF1bHQ9Y30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O3QubWFrZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09dD90OltdLHM9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1uP246W107ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtmb3IodmFyIHIgaW4gaSYmKCJvYmplY3QiPT09KHZvaWQgMD09PWk/InVuZGVmaW5lZCI6ZChpKSk/aS5mb3JFYWNoKGZ1bmN0aW9uKGUpe28uY2xhc3NMaXN0LmFkZChlKX0pOiJzdHJpbmciPT10eXBlb2YgaSYmby5jbGFzc0xpc3QuYWRkKGkpKSxzKWlmKCJkYXRhIj09PXIpe3ZhciBhPXNbcl07Zm9yKHZhciBsIGluIGEpby5kYXRhc2V0W2xdPWFbbF19ZWxzZSBvW3JdPXNbcl07cmV0dXJuIG99LHQuY2FjaGVFbGVtZW50cz1mdW5jdGlvbihlLHQpe3ZhciBuPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09dD90OiJ2aWV3IixpPXt9LHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtIituKyJdIik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZGF0YXNldFtuXTtpW3RdPWV9KSxPYmplY3QuYXNzaWduKGUsaSl9LHQuZ2V0U2libGluZ3M9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49ZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7bjtuPW4ubmV4dFNpYmxpbmcpMT09PW4ubm9kZVR5cGUmJm4hPT1lJiZ0LnB1c2gobik7cmV0dXJuIHR9LHQucmVtb3ZlQ2hpbGRyZW49ZnVuY3Rpb24oZSl7Zm9yKDtlLmZpcnN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKX0sdC5yZW1vdmVFbGVtZW50PWZ1bmN0aW9uKGUpe2UmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0sdC5odG1sU3RyaW5nVG9Ob2RlPWZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmlubmVySFRNTD1lLHQuZmlyc3RDaGlsZH0sdC5wcmVwZW5kPWZ1bmN0aW9uKGUsdCl7ZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpfSx0LmlzRWxlbWVudEluRG9tPWZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmFuaW1hdGU9ZnVuY3Rpb24obixpKXt2YXIgcz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLG89Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXshZnVuY3Rpb24oZSxpLHMpe2k9aS5zcGxpdCgiICIpO2Zvcih2YXIgdCxuPTA7bjxpLmxlbmd0aDtuKyspdD1uLGUuYWRkRXZlbnRMaXN0ZW5lcihpW3RdLGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBuPTA7bjxpLmxlbmd0aDtuKyspdC5jdXJyZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoaVtuXSxlKTtyZXR1cm4gcyh0KX0sITEpfShuLCJ3ZWJraXRBbmltYXRpb25FbmQgbW96QW5pbWF0aW9uRW5kIE1TQW5pbWF0aW9uRW5kIG9hbmltYXRpb25lbmQgYW5pbWF0aW9uZW5kIixmdW5jdGlvbigpe3MmJihuLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uPSIiKSxvJiYobi5zdHlsZS5hbmltYXRpb25EZWxheT0iIiksbi5jbGFzc0xpc3QucmVtb3ZlKGkpLG4uY2xhc3NMaXN0LnJlbW92ZSgiYW5pbWF0ZWQiKSxlKCl9KSxzJiYobi5zdHlsZS5hbmltYXRpb25EdXJhdGlvbj1zKSxvJiYobi5zdHlsZS5hbmltYXRpb25EZWxheT1vKSxuLmNsYXNzTGlzdC5hZGQoaSksbi5jbGFzc0xpc3QuYWRkKCJhbmltYXRlZCIpfSl9LHQucmVxdWVzdEFuaW1hdGU9ZnVuY3Rpb24ocyl7dmFyIG89cGVyZm9ybWFuY2Uubm93KCk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIGUodCl7dmFyIG49KHQtbykvcy5kdXJhdGlvbjsxPG4mJihuPTEpO3ZhciBpPXMudGltaW5nKG4pO3MuZHJhdyhpKSxuPDEmJnJlcXVlc3RBbmltYXRpb25GcmFtZShlKX0pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtxdWVzdGlvbnM6W3txdWVzdGlvbjpbItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQv9GD0LHQu9C40LrRg9C10YIg0LTQstCwJm5ic3A70L7QsdGK0Y/QstC70LXQvdC40Y8uPGJyPtCf0YDQvtC/0YPRgdGC0LjRgtGMINC/0LXRgNCy0L7QtSDQvdCwINGB0LDQudGCPyIsItCf0YDQvtC/0YPRgdC60LDQtdC8INCy0YLQvtGA0L7QtSDQvtCx0YrRj9Cy0LvQtdC90LjQtT8iXSx0aXRsZToi0KTRg9GC0LHQvtC70LrQsCDQvNGD0LbRgdC60LDRjyIsZGVzY3JpcHRpb246WyIxMDAlINGF0LvQvtC/0L7Quiwg0YDQsNC30LzQtdGAIE0iLCIxMDAlINGF0LvQvtC/0L7Quiwg0YDQsNC30LzQtdGAIFhMIl0scHJpY2U6IjQmdGhpbnNwOzAwMCIsY2F0ZWdvcnk6ItCb0LjRh9C90YvQtSDQstC10YnQuCAvINCe0LTQtdC20LTQsCwg0L7QsdGD0LLRjCwg0LDQutGB0LXRgdGB0YPQsNGA0YsiLGltZzp7eDE6ImJhNjMwMzMyLTRkZjMtNjEwZS02MTEyLWNhZGFlYmRkODYyZSIseDI6ImE5MWU2YjM0LWUzYTUtNTUyZS0zM2VmLWFhZWIwMDFmZGM1MSIsYWljOiEwfSxzZWxsZXI6e25hbWU6ItCd0LjQutC+0LvQsNC5Iixwcm9wczoi0KfQsNGB0YLQvdC+0LUg0LvQuNGG0L48YnI+0J3QsCDQkNCy0LjRgtC+INGBINC40Y7QvdGPIDIwMTc8YnI+0JfQsNCy0LXRgNGI0LXQvdC+IDEwINC+0LHRitGP0LLQu9C10L3QuNC5Iixjb2RlOiI5MTQifSxjb3JyZWN0OiJ5ZXMiLG5vdGljZTpbItChINGN0YLQuNC8INC+0LHRitGP0LLQu9C10L3QuNC10Lwg0LLRgdGRINCyINC/0L7RgNGP0LTQutC1LiIsItChINC/0LXRgNCy0L7Qs9C+INCy0LfQs9C70Y/QtNCwINC60LDQttC10YLRgdGPLCDRh9GC0L4g0L7QsdGK0Y/QstC70LXQvdC40Y8g0L3QuNGH0LXQvCDQvdC1INC+0YLQu9C40YfQsNGO0YLRgdGPLiDQntC00L3QsNC60L4g0YDQsNC30L3QuNGG0LAg0LXRgdGC0Ywg0LIg0YDQsNC30LzQtdGA0LUg0YTRg9GC0LHQvtC70L7Quiwg0L/QvtGN0YLQvtC80YMg0L/RgNC+0L/Rg9GB0LrQsNC10LwuIl19LHt0aXRsZToiwqvQnNC+0Y8g0LHQvtGA0YzQsdCwwrsiLGRlc2NyaXB0aW9uOiLQotCy0LXRgNC00YvQuSDQv9C10YDQtdC/0LvQtdGCIDU4NyDRgdGC0YDQsNC90LjRhiIscHJpY2U6IjEmdGhpbnNwOzYwMCIsY2F0ZWdvcnk6ItCl0L7QsdCx0Lgg0Lgg0L7RgtC00YvRhSAvINCa0L3QuNCz0Lgg0Lgg0LbRg9GA0L3QsNC70YsiLGltZzp7eDE6IjliNGQwOTBkLTY5ZTUtNDRhNC01MWNhLTc5ZWNlNjZhMDBiZiIseDI6IjZjZTE4YTMzLTgwYmQtZDM4NS02ZTlmLTlhZmJiZWMwNmU1MiJ9LHNlbGxlcjp7bmFtZToi0JDQtNC+0LvRjNGEIixwcm9wczoi0KfQsNGB0YLQvdC+0LUg0LvQuNGG0L48YnI+0J3QsCDQkNCy0LjRgtC+INGBINGP0L3QstCw0YDRjyAxOTM5PGJyPtCX0LDQstC10YDRiNC10L3QviA2INC+0LHRitGP0LLQu9C10L3QuNC5Iixjb2RlOiI5MjAifSxjb3JyZWN0OiJubyIsbm90aWNlOiLQrdGC0LAg0LrQvdC40LPQsCDQstGF0L7QtNC40YIg0LIg0L/QtdGA0LXRh9C10L3RjCDRjdC60YHRgtGA0LXQvNC40YHRgtGB0LrQvtC5INC70LjRgtC10YDQsNGC0YPRgNGLLCDRgNCw0YHQv9GA0L7RgdGC0YDQsNC90LXQvdC40LUg0LrQvtGC0L7RgNC+0Lkg0L3QsCDRgtC10YDRgNC40YLQvtGA0LjQuCDQoNC+0YHRgdC40Lgg0LfQsNC/0YDQtdGJ0LXQvdC+LiJ9LHt0aXRsZToi0KfQtdGA0LXQv9Cw0YXQsCDQtNCw0LvRjNC90LXQstC+0YHRgtC+0YfQvdCw0Y8iLGRlc2NyaXB0aW9uOiLQp9C10YDQtdC/0LDRiNC60LUg0YLRgNC4INCz0L7QtNC40LrQsCwg0L7Rh9C10L3RjCDQu9GO0LHQvtC/0YvRgtC90LDRjywg0YHQviDRgdCy0L7QtdC90YDQsNCy0L3Ri9C8INGF0LDRgNCw0LrRgtC10YDQvtC8LiIscHJpY2U6IjMmdGhpbnNwOzAwMCIsY2F0ZWdvcnk6ItCW0LjQstC+0YLQvdGL0LUgLyDQlNGA0YPQs9C40LUg0LbQuNCy0L7RgtC90YvQtSIsaW1nOnt4MToiMjk2ZmQyNTUtYjk4Yy0xMWIzLTAyMmItZWU4Mzc0MzcxZDQyIix4MjoiNmFlZjAxZDgtMTFkOS0wZjE5LTYxOGYtMGFjNTYyNTUyYzYwIn0sc2VsbGVyOntuYW1lOiLQkNC90L3QsCIscHJvcHM6ItCn0LDRgdGC0L3QvtC1INC70LjRhtC+PGJyPtCd0LAg0JDQstC40YLQviDRgSDQuNGO0L3RjyAyMDE4PGJyPtCX0LDQstC10YDRiNC10L3QviA1INC+0LHRitGP0LLQu9C10L3QuNC5Iixjb2RlOiI5OTkifSxjb3JyZWN0OiJubyIsYW5zd2VyOntpbmNvcnJlY3Q6ItCd0Lgg0LIg0LrQvtC10Lwg0YHQu9GD0YfQsNC1LiJ9LG5vdGljZToi0JTQsNC70YzQvdC10LLQvtGB0YLQvtGH0L3QsNGPINGH0LXRgNC10L/QsNGF0LAg0Y/QstC70Y/QtdGC0YHRjyDQvtGF0YDQsNC90Y/QtdC80YvQvCDQstC40LTQvtC8LCDQvdCw0YXQvtC00Y/RidC40LzRgdGPINC/0L7QtCDRg9Cz0YDQvtC30L7QuSDQuNGB0YfQtdC30L3QvtCy0LXQvdC40Y8uINCf0YDQvtC00LDQstCw0YLRjCDQttC40LLQvtGC0L3Ri9GFINC+0YXRgNCw0L3Rj9C10LzRi9GFINCy0LjQtNC+0LIg0L3QsCDQkNCy0LjRgtC+INC90LXQu9GM0LfRjy4ifSx7dGl0bGU6ItCf0YDQvtC00LDQvCDRidC10LHQtdC90YwiLGRlc2NyaXB0aW9uOiLQodCw0LzQvtGB0LLQsNC7INGJ0LXQsdC90Y8sINC/0YDQvtC00LDQvCIscHJpY2U6IjMwJnRoaW5zcDswMDAiLGNhdGVnb3J5OiLQn9GA0LXQtNC70L7QttC10L3QuNC1INGD0YHQu9GD0LMgLyDQoNC10LzQvtC90YIsINGB0YLRgNC+0LjRgtC10LvRjNGB0YLQstC+IC8g0J7RgtC00LXQu9C+0YfQvdGL0LUg0YDQsNCx0L7RgtGLIixpbWc6e3gxOiIyMjQ3ZGIwOS00ZWU4LTc5ODQtN2Q2My05ODU3NWYwMDE5MGQiLHgyOiIwMjgwMTBjZC02YjM2LWI1MDgtYmYxNy0yOGMxZTExMzlmMmEifSxzZWxsZXI6e25hbWU6ItCY0LLQsNC9Iixwcm9wczoi0KfQsNGB0YLQvdC+0LUg0LvQuNGG0L48YnI+0J3QsCDQkNCy0LjRgtC+INGBINCw0L/RgNC10LvRjyAyMDE5PGJyPtCX0LDQstC10YDRiNC10L3QviAzINC+0LHRitGP0LLQu9C10L3QuNC5Iixjb2RlOiI5MTAifSxjb3JyZWN0OiJubyIsbm90aWNlOiLQnNC90L7Qs9C40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INGB0YfQuNGC0LDRjtGCINC/0YDQvtC00LDQttGDINGD0YHQu9GD0LPQvtC5INC4INGA0LDQt9C80LXRidCw0Y7RgiDRgdCy0L7QuCDRgtC+0LLQsNGA0Ysg0LIg0LrQsNGC0LXQs9C+0YDQuNC4IMKr0J/RgNC10LTQu9C+0LbQtdC90LjRjyDRg9GB0LvRg9CzwrssINGF0L7RgtGPINC90LAg0YHQsNC80L7QvCDQtNC10LvQtSDQtNC70Y8g0Y3RgtC+0LPQviDQtdGB0YLRjCDQutCw0YLQtdCz0L7RgNC40Y8gwqvQlNC70Y8g0LTQvtC80LAg0Lgg0LTQsNGH0LjCuyAvIMKr0KDQtdC80L7QvdGCINC4INGB0YLRgNC+0LjRgtC10LvRjNGB0YLQstC+wrsgLyDCq9Ch0YLRgNC+0LnQvNCw0YLQtdGA0LjQsNC70YvCuy4ifSx7dGl0bGU6ImlQaG9uZSBYIixkZXNjcmlwdGlvbjoi0JrQuNGC0LDQuSwg0LTQstC1IFNJTS3QutCw0YDRgtGLLiIscHJpY2U6IjkmdGhpbnNwOzAwMCIsY2F0ZWdvcnk6ItCR0YvRgtC+0LLQsNGPINGN0LvQtdC60YLRgNC+0L3QuNC60LAgLyDQotC10LvQtdGE0L7QvdGLIixpbWc6e3gxOiI0ODVjMjU1Zi05ODhhLWY1Y2QtZjQ5ZC05OWViY2FhOTIzZjciLHgyOiIwOTFjZjA5YS02ZDUyLTY2ZTItNzgyNS0zYmU4ZWY5YTEwNzEifSxzZWxsZXI6e25hbWU6ItCV0YDQttCw0L0iLHByb3BzOiLQp9Cw0YHRgtC90L7QtSDQu9C40YbQvjxicj7QndCwINCQ0LLQuNGC0L4g0YEg0LjRjtC90Y8gMjAxOTxicj7Ql9Cw0LLQtdGA0YjQtdC90L4gMSDQvtCx0YrRj9Cy0LvQtdC90LjQuSIsY29kZToiOTQwIn0sY29ycmVjdDoibm8iLG5vdGljZTon0K3RgtC+IDxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5hdml0by5ydS9hcnRpY2xlcy8yMDAwMjY4OTgiIHRhcmdldD0iX2JsYW5rIj7QutC+0L3RgtGA0LDRhNCw0LrRgtC90YvQuSDRgtC+0LLQsNGAPC9hPi4g0JzQvtC00LXRgNCw0YbQuNGPINC/0L7QvdC40LzQsNC10YIsINGH0YLQviBpUGhvbmUgWCDRgdGC0L7QuNGCINC90LDQvNC90L7Qs9C+INC00L7RgNC+0LbQtSwg0YfQtdC8IDkwMDA7INCx0L7Qu9C10LUg0YLQvtCz0L4sIMKr0JrQuNGC0LDQucK7INC4IMKr0LTQstC1IFNJTS3QutCw0YDRgtGLwrsgKNCyINGC0LXQu9C10YTQvtC90LDRhSDQvNC+0LTQtdC70LggWCDRgtC+0LvRjNC60L4g0L7QtNC90LAgU0lNLdC60LDRgNGC0LApINGD0LrQsNC30YvQstCw0LXRgiDQvdCwINC/0YDQvtC00LDQttGDINC60L7Qv9C40LguJ31dfX1dKTs='; s.async = true; var container = d.getElementById('avito-iblocks'); if (container) { s.onload = function() { new AvitoIBlocks.Special({ css: 'data:text/css;base64,LmFuaW1hdGVkey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tZHVyYXRpb246LjJzOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uYXZpdG9GYWRlSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTphdml0b0ZhZGVJbjthbmltYXRpb24tbmFtZTphdml0b0ZhZGVJbn0uYXZpdG9GYWRlT3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXZpdG9GYWRlT3V0O2FuaW1hdGlvbi1uYW1lOmF2aXRvRmFkZU91dH1ALXdlYmtpdC1rZXlmcmFtZXMgYXZpdG9GYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBhdml0b0ZhZGVJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgYXZpdG9GYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgYXZpdG9GYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fWZpZ3VyZXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYXZpdG8taWJsb2NrLWZpZ3VyZX4qe29wYWNpdHk6LjQ7LXdlYmtpdC1maWx0ZXI6Ymx1cigzcHgpO2ZpbHRlcjpibHVyKDNweCk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3BvaW50ZXItZXZlbnRzOm5vbmV9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLCgtbXMtaGlnaC1jb250cmFzdDpub25lKXsuYXZpdG8taWJsb2NrLWZpZ3VyZX4qe29wYWNpdHk6LjA1fX0uYXZpdG8taWJsb2NrLW5vdGljZXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjMwcHggMTVweCAxNHB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmfUBtZWRpYSAobWluLXdpZHRoOjY4MHB4KXsuYXZpdG8taWJsb2NrLW5vdGljZXtwYWRkaW5nOjYwcHggMjVweCAyOHB4O2ZvbnQtc2l6ZToyMHB4fX0uYXZpdG8taWJsb2NrLW5vdGljZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTZweDtsZWZ0OjA7cmlnaHQ6MDttYXJnaW46MCBhdXRvO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Ym9yZGVyLXRvcDozcHggc29saWQgIzRmYThmZjtib3JkZXItcmlnaHQ6M3B4IHNvbGlkICM0ZmE4ZmY7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfUBtZWRpYSAobWluLXdpZHRoOjY4MHB4KXsuYXZpdG8taWJsb2NrLW5vdGljZTpiZWZvcmV7dG9wOjI2cHg7d2lkdGg6MThweDtoZWlnaHQ6MThweH19LmF2aXRvLWlibG9ja3twb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjIwcHggMDtmb250LWZhbWlseTpSb2JvdG8sc2VyaWY7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6bm9ybWFsOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tb3otdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGV4dC1zaXplLWFkanVzdDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2UzZTNlMztvdmVyZmxvdzpoaWRkZW59QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2t7cGFkZGluZzozNXB4IDB9fUBtZWRpYSAobWluLXdpZHRoOjEwMjVweCl7LmF2aXRvLWlibG9ja3twYWRkaW5nOjU1cHggMCA2MHB4fX0uYXZpdG8taWJsb2NrX190aXRsZXttYXJnaW4tYm90dG9tOjE1cHg7cGFkZGluZzowIDE1cHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcn0uYXZpdG8taWJsb2NrX190aXRsZS0tMHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDoyLjRlbX1AbWVkaWEgKG1pbi13aWR0aDo2ODBweCl7LmF2aXRvLWlibG9ja19fdGl0bGV7bWFyZ2luLWJvdHRvbToyNXB4O2ZvbnQtc2l6ZToyMHB4O2xldHRlci1zcGFjaW5nOi4xNGVtfX1AbWVkaWEgKG1pbi13aWR0aDoxMDI1cHgpey5hdml0by1pYmxvY2tfX3RpdGxle21hcmdpbi1ib3R0b206MzVweDtmb250LXNpemU6MjVweH19LmF2aXRvLWlibG9ja19fb3B0aW9uc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXRvcDoyMHB4fUBtZWRpYSAobWluLXdpZHRoOjY4MHB4KXsuYXZpdG8taWJsb2NrX19vcHRpb25ze21hcmdpbi10b3A6MzBweH19QG1lZGlhIChtaW4td2lkdGg6MTAyNXB4KXsuYXZpdG8taWJsb2NrX19vcHRpb25ze21hcmdpbi10b3A6NDBweH19LmF2aXRvLWlibG9ja19fb3B0aW9ue3dpZHRoOjEwMHB4O2hlaWdodDozNnB4O3BhZGRpbmc6MDttYXJnaW46MCA3cHg7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTdweDtib3JkZXItcmFkaXVzOjNweDtib3JkZXI6MnB4IHNvbGlkICM1ZjVmNWY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2tfX29wdGlvbnt3aWR0aDoxNTBweDtoZWlnaHQ6NTBweDttYXJnaW46MCAxNHB4fX0uYXZpdG8taWJsb2NrX19vcHRpb246aG92ZXJ7b3BhY2l0eTouNn1AbWVkaWEgKGhvdmVyOm5vbmUpLChob3Zlcjpvbi1kZW1hbmQpey5hdml0by1pYmxvY2tfX29wdGlvbjpob3ZlcntvcGFjaXR5OjF9fS5hdml0by1pYmxvY2suaXMtYW5zd2VyZWQgLmF2aXRvLWlibG9ja19fb3B0aW9ue29wYWNpdHk6MTtjdXJzb3I6ZGVmYXVsdH0uYXZpdG8taWJsb2NrX19vcHRpb24uaXMtY29ycmVjdCwuYXZpdG8taWJsb2NrX19vcHRpb24uaXMtaW5jb3JyZWN0e2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9LmF2aXRvLWlibG9ja19fb3B0aW9uLmlzLWNvcnJlY3R7YmFja2dyb3VuZC1jb2xvcjojNTFkMDU2fS5hdml0by1pYmxvY2tfX29wdGlvbi5pcy1pbmNvcnJlY3R7YmFja2dyb3VuZC1jb2xvcjojZWY0YjRifS5hdml0by1pYmxvY2stYm9keXt3aWR0aDo4MTZweDttYXgtd2lkdGg6MTAwJTttYXJnaW46MCBhdXRvO3BhZGRpbmc6MTVweCAxNXB4IDIwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmfUBtZWRpYSAobWluLXdpZHRoOjEwMjVweCl7LmF2aXRvLWlibG9jay1ib2R5e3BhZGRpbmc6MzBweH19LmF2aXRvLWlibG9jay1ib2R5X19jYXRlZ29yeXttYXJnaW4tYm90dG9tOjEycHg7Y29sb3I6IzQ0OTFkYjtmb250LXNpemU6MTJweH1AbWVkaWEgKG1pbi13aWR0aDozNzVweCl7LmF2aXRvLWlibG9jay1ib2R5X19jYXRlZ29yeXtmb250LXNpemU6MTRweH19QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2stYm9keV9faW5uZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH19QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2stYm9keV9fbWFpbnt3aWR0aDo3MCU7cGFkZGluZy1yaWdodDoxNXB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMDI1cHgpey5hdml0by1pYmxvY2stYm9keV9fbWFpbntwYWRkaW5nLXJpZ2h0OjMwcHh9fS5hdml0by1pYmxvY2stYm9keV9fc2lkZXttYXJnaW4tdG9wOjMwcHh9QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2stYm9keV9fc2lkZXt3aWR0aDozMCU7bWFyZ2luLXRvcDowfX0uYXZpdG8taWJsb2NrLWJvZHlfX3ByaWNlLC5hdml0by1pYmxvY2stYm9keV9fdGl0bGV7bWFyZ2luLWJvdHRvbToxMHB4O2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjUwMH1AbWVkaWEgKG1pbi13aWR0aDo2ODBweCl7LmF2aXRvLWlibG9jay1ib2R5X19wcmljZSwuYXZpdG8taWJsb2NrLWJvZHlfX3RpdGxle21hcmdpbi1ib3R0b206MjZweDtmb250LXNpemU6MjBweH19QG1lZGlhIChtaW4td2lkdGg6NjgwcHgpey5hdml0by1pYmxvY2stYm9keV9fcHJpY2V7dGV4dC1hbGlnbjpyaWdodH19LmF2aXRvLWlibG9jay1ib2R5X19pbWd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9QG1lZGlhIChtaW4td2lkdGg6MTAyNXB4KXsuYXZpdG8taWJsb2NrLWJvZHlfX2ltZ3ttaW4taGVpZ2h0OjMxMHB4fS5hdml0by1pYmxvY2stYm9keV9faW1nLS1haWN7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9fS5hdml0by1pYmxvY2stYm9keV9faW1nPmltZ3tkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlfS5hdml0by1pYmxvY2stYm9keV9fbWVzc2FnZSwuYXZpdG8taWJsb2NrLWJvZHlfX3Bob25le2ZvbnQtc2l6ZToxNHB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6M3B4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEgKG1heC13aWR0aDo2NzlweCl7LmF2aXRvLWlibG9jay1ib2R5X19tZXNzYWdlLC5hdml0by1pYmxvY2stYm9keV9fcGhvbmV7d2lkdGg6MjAwcHg7bWF4LXdpZHRoOjEwMCV9fUBtZWRpYSAobWluLXdpZHRoOjY4MHB4KXsuYXZpdG8taWJsb2NrLWJvZHlfX21lc3NhZ2UsLmF2aXRvLWlibG9jay1ib2R5X19waG9uZXtmb250LXNpemU6MTZweH19LmF2aXRvLWlibG9jay1ib2R5X19waG9uZXttYXJnaW4tYm90dG9tOjEwcHg7cGFkZGluZzo4cHggMDtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjEuM2VtO2JhY2tncm91bmQtY29sb3I6IzRmYThmZn1AbWVkaWEgKG1pbi13aWR0aDoxMDI1cHgpey5hdml0by1pYmxvY2stYm9keV9fcGhvbmV7cGFkZGluZzoxMnB4IDB9fS5hdml0by1pYmxvY2stYm9keV9fbWVzc2FnZXttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZzo4cHggMCA5cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfUBtZWRpYSAobWluLXdpZHRoOjEwMjVweCl7LmF2aXRvLWlibG9jay1ib2R5X19tZXNzYWdle21hcmdpbi1ib3R0b206MjZweDtwYWRkaW5nOjEycHggMCAxM3B4fX0uYXZpdG8taWJsb2NrLWJvZHlfX3NlbGxlcnttYXJnaW4tYm90dG9tOjE2cHg7cGFkZGluZy1ib3R0b206MTVweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjNlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTFlMWUxfS5hdml0by1pYmxvY2stYm9keV9fc2VsbGVyPmRpdjpmaXJzdC1jaGlsZHttYXJnaW4tYm90dG9tOjRweDtjb2xvcjojNGZhOGZmO2ZvbnQtc2l6ZToxNnB4fS5hdml0by1pYmxvY2stYm9keV9fZGVzY3JpcHRpb257Zm9udC1zaXplOjE0cHh9LmF2aXRvLWlibG9jay1wb3B1cHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmF2aXRvLWlibG9jay1wb3B1cCwuYXZpdG8taWJsb2NrLXBvcHVwX19vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmF2aXRvLWlibG9jay1wb3B1cF9fb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2N1cnNvcjpwb2ludGVyfS5hdml0by1pYmxvY2stcG9wdXBfX2JveHt3aWR0aDozNjVweDttYXgtd2lkdGg6OTUlO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtwYWRkaW5nOjI2cHggMThweCAzMHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYXZpdG8taWJsb2NrLXBvcHVwX190ZXh0e2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuM2VtfS5hdml0by1pYmxvY2stcG9wdXBfX2J0bnt3aWR0aDoxMzBweDtoZWlnaHQ6MzVweDttYXJnaW46MjVweCBhdXRvIDA7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDozNXB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQtY29sb3I6IzRmYThmZjtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnM7dHJhbnNpdGlvbjpvcGFjaXR5IC4yc30uYXZpdG8taWJsb2NrLXBvcHVwX19idG46aG92ZXJ7b3BhY2l0eTouOH1AbWVkaWEgKGhvdmVyOm5vbmUpLChob3Zlcjpvbi1kZW1hbmQpey5hdml0by1pYmxvY2stcG9wdXBfX2J0bjpob3ZlcntvcGFjaXR5OjF9fQ==', container: container, selector: '.js-avito-iblock', }); }; } d.body.appendChild(s); })(document, 0);
0
131 комментарий
Написать комментарий...
Елизавета Синельник

Не знаю зачем это мне, но было интересно

Ответить
Развернуть ветку
Того трек перематывал
Ответить
Развернуть ветку
Vitold S.

Как раз вынырнул из стати о том что в 21 веке стало популярно больше думать, но теперь мышление это не инструмент к решению задачки (как покушать, размножиться или сделать жилье), а размышления ради размышления. Вот и сейчас я т...ю мозги, а мог бы пригласить на кофе ;) А что еще да все эти фреймворки, библиотеки, каталоги и прочее и прочее занимающее уйму времени на анализ и принятие решения - просто извращенный способ развлечения (занимание времени других пока кто-то жрет чипсики).

Ответить
Развернуть ветку
128 комментариев
Раскрывать всегда