- 1
IT Оффтоп #76
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #76
#47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
#48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
#49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
#49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
#50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
#51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
#52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
#53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
#54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
#55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
#56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
#57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
#58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
#59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
#65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
#66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
#67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
#68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
#69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
#70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
#71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
#72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
#73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
#74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
#75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
nepeKamHblu_nemyx # 0
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
real_escape_string # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
gost # 0
Какой пиздец.
Desktop # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
чуваки, которые делали W3, съебались на райский остров, а новенькие не осилили knowledge transfer?
bormand # 0 ⇈
У них там дофига подобных багов с удалением всякой фигни, на самом деле: мобилы, сигареты и т.п. остаются в воздухе если чела убить. Иногда даже реплики персонажей остаются висеть на экране и переживают релоад сейва и перезапуск игры.
Desktop # 0 ⇈
- это потому что у них нет RAII
> Иногда даже реплики персонажей остаются висеть на экране и переживают релоад сейва и перезапуск игры.
- я не верю, что такое можно было сделать случайно
bormand # 0 ⇈
CHayT # 0 ⇈
Если раньше, когда PR отдел ждалкера заливал про полную симуляцию мира и катание на машинках, а выходила обрезанная версия без машинок, с неписями, левитирующими через потолки, и игроки говорили "спасибо и на этом", то сейчас дискурс сменился.
Xepyc_DJIuHyc # 0 ⇈
Не баги и не фичи, а аномалии!
bormand # 0 ⇈
Desktop # 0 ⇈
Desktop # 0 ⇈
кстати, сталкер и кп роднит то, что изначально это планировались немного другие игры
bormand # 0 ⇈
А полиция вообще догонять не умеет. Видимо им за это не платят.
Desktop # 0 ⇈
полицаи там, как я понял, спаунятся просто из воздуха
bormand # 0 ⇈
З.Ы. Иногда одна машина внутри другой спавнится. Или какой-нибудь чел прямо перед тобой возникает и ты не успеваешь оттормозиться.
Desktop # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
gost # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
jojaxon # 0 ⇈
Desktop # 0 ⇈
- с майнерами?
будет смешно, если васянская сборка кп с майнером будет тормозить меньше, чем ванильная 1.0.*
gost # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
только тогда я тоже не понял, о чём jojaxon
CHayT # 0 ⇈
CHayT # 0 ⇈
Правда лор не объясняет, почему v — вампир. Все неписи везде отражаются, а гг — нет.
gost # 0 ⇈
А ему модельку не сделали: https://www.reddit.com/r/cyberpunkgame/comments/keztoj/my_camera_got_stuck_behind_the_car_and_d idnt_move/.
Desktop # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
если что-то не отрисовывается, то либо не скопировалось, либо рендер не хочет рисовать по какой-то причине
это как я понимаю
gost # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
Очень скептически отношусь к РТХ, технология слишком переоценена и на самом деле из-за неё можно многое проебать. Например ты включил РТХ в киберпуке - считай ты проебал как изначально задумывали игру света и как задумывали дизайнеры с художественной целью. Вот из-за таких как ты скоро те кто работают над светом в играх будут плакать и им нечего будет кушать! А мы будем периодически получать все менее и менее интересные визуальные шедевры в играх.
gost # 0 ⇈
> Например ты включил РТХ в киберпуке - считай ты проебал как изначально задумывали игру света
[citation needed]
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
А зачем в каждую игру не пихать ваш хваленый РТХ?
> РТХ ПОРТИТ НАХУЙ ВСЕ ПРЕЛЕСТИ ЧТО ЗАДУМАЛ ДИЗАЙНЕР
Почему? Дизайнер, скорее всего, изначально будет разрабатывать дизайн для настроек с RTX. Нет, в принципе, если видеокарта не поддерживает «RTX» — тогда да, можно сделать вывод, что он портит прелести. Но это же не твой случай.
bormand # 0 ⇈
360Вт на прелести, которые задумал дизайнер, да.
gost # 0 ⇈
Вот я бы тоже так подумал, если бы у него карта без RTX была.
bormand # 0 ⇈
gost # 0 ⇈
Тогда всё понятно.
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
320x145x47 mm видеокарта. Смотрим GeForce RTX 3090 имеет высоту 313 мм, ширину — 138 мм. Ой блядь. Поместилась.
gost # 0 ⇈
> 313x138
https://www.youtube.com/watch?v=csHiTtxDmx0
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
Я так шумодавку у наушников тестировал, стоя между закипающим чайником и рычащим холодильником.
CHayT # 0 ⇈
CHayT # 0 ⇈
Не соглашусь, разница с/без RTX довольно минимальна, отражения только делаются точнее.
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
С DLSS'ом вытягивает 1080@60 на ультрах. Без него, к сожалению, нет.
Desktop # 0 ⇈
- я правильно понимаю, что она стоит ~$1.5K?
CHayT # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
Как, по твоему мнению, это было бы реализовано без «RTX» и почему нельзя сделать так же с «RTX»?
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
> Страдай или делать пердоль-костыль.
Да-а-а, а вот до «RTX», конечно, костылей не было. И рендер отражений в виде создания копии мира — это простое, красивое и производительное решение.
Xepyc_DJIuHyc # 0 ⇈
>> Да-а-а, а вот до «RTX», конечно, костылей не было. И рендер отражений в виде создания копии мира — это простое, красивое и производительное решение.
Так в этом и прикол, пока все знают как сделать "красивое и производительное решение". Но чем глубже будет РТХ внедрятся тем память о тех костылях "красивое и производительное решение" будет стираться. А потом - (ыыыыы я программист, эээ хочу сделать тень квадрата круглой, ыыыыыы). А cycles лишь просто пример как просто и красиво это работает
gost # 0 ⇈
И это заебись. Потому что все эти «красивые и производительные решения» — это ёбанные адские костыли, которые разработчики вынуждены были говнокодить исключительно из-за несовершенства технических решений.
Ну вот стёрлась память о том, как костылями на 16-цветном мониторе рисовать 256 цветов (или сколько там было) — и чо? А ведь тоже было сакральное, блядь, знание для избранных.
> А cycles лишь просто пример как просто и красиво это работает
Ну да, хочешь сделать какую-то нестандартную хуйню — придётся поебаться. Возьми и сделай круглую тень у квадрата в каком-нибудь «Unreal Engine» — очень там это будет легко и просто без богомерзкого «RTX»?
zhigolo # 0 ⇈
CHayT # 0 ⇈
Треклятая оптика, туды её в качель!
> Ну извините - у нас РТХ.
В cycles нет RTX.
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
А дизайнеры, скорее всего, стараются работать именно над максимальными настройками. И именно там они выражают свои художественные цели. Т.е. играя не на максималках и отключая RTX и прочие технологии ты проёбываешь игру света, которая была изначально задумана.
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
То же стекло с отражением и преломлением к месту вставить, к примеру.
CHayT # 0 ⇈
Скорее освобождение от кучи костылей. Я в свое время почитывал статайки с SIGGRAPH, там люди реально ебанутые хаки делают для достижения какого-то результата. Весело, конечно, и требует мастерства, но современный 3D pipeline — это изящный балет на костылях.
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
> Мы уже живем эпохи катострофы игровой индустрии.
Ну и причём здесь «RTX»? Это «RTX» заставляет производителей выпускать унылое говно с микротранзакциями зи $69.99? Или «RTX» заставляет покупателей покупать унылое говно, тем самым спонсируя производство унылого говна? Или благодаря «RTX» миллионы китайцев стабильной рекой вливают юани в создание охулиардов терминально-отвратительных мобильных дрочилен-купи-кристаллы-или-жди-сутки?
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
А то везде одна хвальба, надо же грязь навести.
gost # 0 ⇈
Это называется «нахрюк». Но нахрюкивать тоже надо уметь, причём желательно это делать с реальными примерами.
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
gost # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
>> Ну это так, просто мне не нравится это тенденция и опасаюсь
Кароче это как люди боялись принимать электричество, тут так же.
Я не считаю её плохой. Я считаю что она приведет к многим последствиям, приятных и не приятных.
MAKAKA # 0 ⇈
Вот в 1992-м году у разработчика было ничего, кроме возможности писать в видеопамять.
И потому каждая игра была не похожа на другую, а ограничение в несколько сот килобайт подстёгивало разрабов создавать по истине волнующие миры.
А теперь что? Питухи или покупают готовый движок, или за них карта всё рендерит, и везде бегают одинаковые персонажи и занимаются скучными вещами
Разве есть сейчас такие игры, как Loom?
Нет
нету сейчас нихуя.
Фейсбук убил интернеты, а GPU убил видеоигры
bormand # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
TOPT # 0 ⇈
bormand # 0 ⇈
Ну 200+ на видюху, 100+ на проц. Собственно почему я писал про гробы и теплоотвод.
TOPT # 0 ⇈
bormand # 0 ⇈
Цифры из спеки на проц и видюху, вполне согласуются с показаниями.
А из гроба, имхо, намного проще отвести 360Вт чем из узкого пенала.
З.Ы. И это не топовый конфиг, а просто более-менее актуальный сейчас.
TOPT # 0 ⇈
Звучит как очередной намек что мой комп говно тупо из-за моих предпочтении к корпусу
bormand # 0 ⇈
З.Ы. Там воздухом на выхлопе можно волосы сушить, лол.
TOPT # 0 ⇈
bormand # 0 ⇈
> кроме райзера из-за которого я не мог ПК собрать пол года в корпус
/0
А я собирал по максимуму тишины -- поэтому гробище с виброгасилками из какой-то тяжёлой хуйни на стенках корпуса, хдд на резиночках (уже выключил за ненужностью) и полностью закрытый перед и верх (да, блядь, из-за этого водянка по-ламерски стоит на ВХОДЕ и пылесосит пол).
TOPT # 0 ⇈
bormand # 0 ⇈
TOPT # 0 ⇈
https://i.imgur.com/hULbO7l.jpg
TOPT # 0 ⇈
MAKAKA # 0 ⇈
https://cs11.pikabu.ru/post_img/2019/07/23/4/1563856021184125176.jpg
Desktop # 0 ⇈
вынимаешь всё, берёшь кисточку и тряпку, аккуратно протираешь, корпус можно пропылесосить автомобильным пылесосом, если имеется
MAKAKA # 0 ⇈
я его чищу, но заябывает же
CHayT # 0 ⇈
Xepyc_DJIuHyc # 0 ⇈
bormand # 0 ⇈
KAPA6AXCKuu_nemyx # 0 ⇈
guest # 0 ⇈
или помножу
как там было?
CHayT # 0 ⇈
Этой техникой там, как мне кажется, только зеркала с кнопочкой рендерятся. Отражения в стёклах/лужах там через RTX.
Desktop # 0 ⇈
CHayT # 0 ⇈
Там скорее проблема с анимациями, если делать анимации для первого лица как для третьего, игроки заблюют себе все клавиатуры. В Mirror's Edge как-то хакнули камеру, сделав её от третьего лица, и анимация гг была выглядела полностью всратой, но так и должно было быть.
CHayT # 0 ⇈
bormand # 0 ⇈
А если надеть кепку, то в зеркале отражается лысина.
CHayT # 0 ⇈
bormand # 0 ⇈
Блин, на днях не успел заскринить свою тень в т-позе. Видимо тень догадалась, что я тянусь делать скриншот.
bormand # 0 ⇈
Кстати, у неписей там тоже не все части одежды отражаются.
CHayT # 0 ⇈
CHayT # 0 ⇈
Desktop # 0 ⇈
guest # 0
умнеьшите картинк
gost # 0 ⇈
guest # 0 ⇈
gost # 0
bormand # 0 ⇈
Еретик!
gost # 0 ⇈
CHayT # 0 ⇈
Или такое только на лаптопах бывает, что более дерьмовый проц с меньшим термовыделением в среднем быстрее пашет?
guest # 0 ⇈
меньше тротлится, лол
CHayT # 0 ⇈
guest # 0
bormand # 0 ⇈
MAKAKA # 0
Чтобы вы выбрали для бекапа: Veritas NetBackup? Vertias NetExec? Veam? Acronis? ваш вариант?
Чтобы вы выбрали для маниторинга: Zabbix? Nagios? MS SCOM? PRTG? Что-то еще?
gost # 0 ⇈
Desktop # 0
guest # 0 ⇈
Если нет, то в на куче.
В функцию передать указатель и размер
Desktop # 0 ⇈
я не знаю, сколько вызывающая функция насрёт в строку
не триммать же до размера
guest # 0 ⇈
Desktop # 0 ⇈
мне нужно сделать функцию типа
void get_description(Struct_type struct_entity, char *buffer);
создать какой-то str, передать его, функция насрёт дескрипшеном (возможно, отпердолит буфер ещё в какие-то функции), я его потом выведу принтфом
guest # 0 ⇈
* задать макисмальный размер строки, выделить на стеке вызывающей стороны место, и передать указатель. Оставшееся место get_description заполнит нолями (на самом деле достаточно одного ноля в конце строки). Ну будет лишняя память: вообще пофиг
* выделить место на куче в get_description, и вернуть указатель. Вызывающая сторона будет обязана дернуть free потом.
Первый вариант хорош для строк не длинее тыщи-другой символов наверное, иначе второй
Алсо, на стеке место выделяеца за O(1), то есть бесплатно. На куче может быть что и нет, там зависит от рантайма и ос.
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Можешь попрофилировать, и проверить насколько там всё пиздец.
CHayT # 0 ⇈
Если нет резона хранить буфер в памяти, то пиши функцию, которая срёт сразу в дескриптор, а не в память. Иначе ты сейчас потоки на чистой сишке изобретёшь.
Desktop # 0 ⇈
сишные функции в идеале должны дёргаться из свифта
я не уверен, что я смогу там сочинить дескриптор
MAKAKA # 0 ⇈
Снаут вероятно имеет ввиду, что если у тебя есть дескрпитор файла или пайпа или сокета, то нет смысла его читать в память целиком: можно передать дескриптор туда, где его считает заинтересованная сторона (или сразу, или чанками, пока EOF не придет).
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Вместо сишного FILE может быть дескриптор позиксовой операционки (число): это чуть более низкоуровенвый API. На винде вместо него хендлер.
Наконец, можно упопроться, и передать указатель на функцию (по сути колбек) который твоя вызываемя функция будет дергать, передавая туда кусочек текста.
А в реализации колбека ты буш его печатать
Desktop # 0 ⇈
CHayT # 0 ⇈
Ещё один случай когда работает закон "универсально, просто, эффективно — выбери 2". Универсально и просто — работать со строками и реаллочить их a la std::vector. Универсально и эффективно — запилить потоковую питушню, которую можно либо превратить в строку, либо застримить в файл, но на сишке это нихера не просто. Эффективно и просто — срать сразу в файл, как я предложил. Не зная, чего хочет ОП, можно только гадать.
CHayT # 0 ⇈
gost # 0 ⇈
Desktop # 0 ⇈
но пока на файлах
эх, давно не писал на сижке свой собственный код. скрипит потёртое седло!
guest # 0 ⇈
я надеюсь это означает, что функция пишет в файл, а другая потом его открывает, и читает?
Desktop # 0 ⇈
MAKAKA # 0 ⇈
кстати, зацени
стример
https://andpro.ru/catalog/storage/tape_drives/strimer_hp_enterprise_ultrium_30750_v_ot sek_q6q67a/
Desktop # 0 ⇈
MAKAKA # 0 ⇈
По златохуйски.
Ну ты прикинь, кто-то платит 5К баксов за стример.
bormand # 0 ⇈
От безысходности. Как-будто есть другие варианты для огромных бекапов...
MAKAKA # 0 ⇈
Хотя вообще ты прав, кассеты вроде и по 20 терабайт бывают.
Это дешевле, чем диски
bormand # 0 ⇈
Да и хранить легче.
MAKAKA # 0 ⇈
1024-- # 0 ⇈
MAKAKA # 0 ⇈
Может оказаться, что дешевле нанять миллион человек, и попросить каждого запомнить кусочек информации навсю жизнь
defecate-plusplus # 0 ⇈
если речь зайдет о библиотеке на тыщи кассет, чтобы роботы ездили с полок доставали и в стримеры пихали, там уже на несколько порядков дороже
я как-то от "нехуй делать" давно считал хранилку, которая была по сути десяток серверных стоек, на корзинах hdd получалось дешевле, чем у quantum такую библиотеку покупать - притом, что ленты это нихера не рандом аксес, извините
CHayT # 0 ⇈
Desktop # 0 ⇈
лента ж тоже может размагнититься
CHayT # 0 ⇈
MAKAKA # 0 ⇈
Не так много на свете людей, у которых стоит задача забекапить куда-нибудь девятьсот терабайт данных, да так, чтобы их в ближайшие 28 лет точно не пришлось читать
defecate-plusplus # 0 ⇈
Для механики дисков есть рейды.
Не только долговечность стоит рассматривать
Desktop # 0 ⇈
мы никому не расскажем
CHayT # 0 ⇈
Ну это другой юзкейз, который я бы обозвал холодным стораджем, а не бекапом. Магнитные ленты нужны, когда ты в принципе их не собираешься читать в нормальных условиях, а хранишь их вечно на случай "DC сгорел нахуй и вирус-шифровальщик золу зашифровал", "распидорафтило базу данных", "расследуем криминал" или "государство обратило на нас свои очи, и хочет знать, какие махинации мы делали в 2011м".
defecate-plusplus # 0 ⇈
Но если вы тут только про бекапы, тогда ладно
MAKAKA # 0 ⇈
defecate-plusplus # 0 ⇈
MAKAKA # 0 ⇈
ну, мне так кажется.
CHayT # 0 ⇈
Принтфом из свифта?
Desktop # 0 ⇈
MAKAKA # 0 ⇈
долго думал причем тут threads, пока не понял, что ты про streams
русская язык сложно
CHayT # 0 ⇈
P.S. Надо ещё научить его работать с improper list'ами, у которых вместо null'ов в жопе функция, для ленивых вычислений, и получится совсем царский iostream, лол.
bormand # 0 ⇈
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
j123123 # 0 ⇈
https://govnokod.ru/25602 - там я когда-то рассуждал над такой хуйней
Desktop # 0 ⇈
https://govnokod.ru/27227
CHayT # 0 ⇈
> размер буфера я заранее не знаю
> как мне подобрать размер
> я не знаю, сколько вызывающая функция насрёт в строку
Замапь /dev/astral в буфер.
MAKAKA # 0
Грубо гря:
* 0: Петх
* 1: Курочка
* 7: Цыплёнок
* 12: Утёонк
На ум пришел разрешенный массив, вот и в андроиде есть класс SparseArray.
А в J2SE нет.
Можно взять конечно TreeMap, но стыдно.
Есть ли в джаве что то такое?
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Кнопки скрепки клёпки
Desktop # 0 ⇈
MAKAKA # 0 ⇈
сделал по другому, хотя желание в целом верное же.
А у вас есть спарс эррей?
Desktop # 0 ⇈
6a6yuH # 0 ⇈
Desktop # 0 ⇈
Problems, officer?
6a6yuH # 0 ⇈
Desktop # 0 ⇈
> как кусок памяти выглядит?
- бмп
6a6yuH # 0 ⇈
1. четыре байта
2. еще четыре байта
3. снова четыре байта
как тут может быть опшинал? какое-то спецальное значение инта, которое нельзя теперь использовать?
Desktop # 0 ⇈
guest # 0 ⇈
так то я и в джаве могу лист интеджеров сделать с нулами, но это приведет к боксингу
bormand # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
Кстати, а ведь второй можно сделать битовой картой — тогда как раз в среднем и получится оверхед в 1 бит. Неплохо.
bormand # 0 ⇈
MAKAKA # 0 ⇈
Desktop # 0 ⇈
> А у вас есть спарс эррей?
Я тебе привёл пример. Если тебе нужно итерироваться по миллионам ячеек, как в ответе на so, который д++ запостил, он тебе не подойдёт, естественно.
До чего ты пытаешься доебаться?)
guest # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
четыре байта на флаг, четыре байта на инт...
Вряд ли там особая специализация под массив опшеналов.
gost # 0 ⇈
Массив из элементов на 33 бита?
bormand # 0 ⇈
bormand # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
gost # 0 ⇈
> Но это как-то плохо обобщается на другие типы.
Хранить битмап каждые sizeof(T) * CHAR_BIT.
bormand # 0 ⇈
С джвумя массивами с кешем тоже всё в порядке: кешлайн на битмапу, кешлайн на данные. Здесь тоже 1-2 кешлайна будет в зависимости от везения.
Единственно, префетчер может лучше работать с упакованным вариантом, если он джва "потока чтений" одновременно трекать не умеет.
З.Ы. Но с отдельной битмапой итератор может намного быстрее перепрыгивать пустые регионы и перечислять ключи т.к. данные не надо затягивать в кеш.
Desktop # 0 ⇈
bootcamp_dropout # 0 ⇈
KAPA6AXCKuu_nemyx # 0 ⇈
defecate-plusplus # 0 ⇈
https://stackoverflow.com/questions/390181/sparse-matrices-arrays-in-java
6a6yuH # 0 ⇈
bormand # 0 ⇈
Вай нот, если в пирфоманс и память не упирается?
З.Ы. Тем более, если верить доке, андроидский SparseArray это и есть банальная хешмапа немножко доработанная под интовые ключи.
gost # 0 ⇈
https://developer.android.com/reference/android/util/SparseArray
bormand # 0 ⇈
А, понял тебя. Прям упорядоченный массив. Ну это ж пиздец на вставке...
gost # 0 ⇈
В принцимпе, если вставлять только увеличивающиеся ключи, то, по идее, всё нормально должно быть, как в обычном массиве. А если в середину вставлять — то да, пойдут передёргивания элементов, ну дык это и в обычном массиве так.
bormand # 0 ⇈
С последовательным заполнением слева направо должно быть норм.
Desktop # 0 ⇈
- я чот думал, что у любого языка чуть высокоуровневее крестов/сижки массив это linked list в гриме
6a6yuH # 0 ⇈
gost # 0 ⇈
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Даже если тебе нужно вставить что-то в середину, то скопировать большой массив последовательных данных не очень тяжелая операция для современных CPU.
Потому джавушки стараются всегда использовать ArrayList (там массив под капотом) и меняют его на LinkedList только если реально профайлер так скажет
gost # 0 ⇈
У него всё равно поиск ключа (каждое обращение) за O(logN). Ну да, коньстанта там чуть поменьше будет, чем у TreeMap, зато вставка/удаление — линейные, в отличие от TreeMap.
bormand # 0 ⇈
gost # 0 ⇈
Ну да, сэкономить пару килобат — самое то.
6a6yuH # 0 ⇈
в джаве нету же шаблонов нормальных
bormand # 0 ⇈
Или Integer ещё больше весит? Там же ещё какая-то лочка в каждом объекте...
MAKAKA # 0 ⇈
Короче, List<Integer> просто даже смешно сранивать с int[]
bormand # 0 ⇈
MAKAKA # 0 ⇈
The overhead of object is at least 12 bytes for header for 64-bit system and modern JDK. It then rounded to 16.
Если честно, то я не знаю кишок джавы в этом месте. Нужно почитать. За что купил, за то и продаю.
Есть класс Instrumentaton, им можно проверить
Видимо там еще говно хранится какое-то типа кеша хеша например, или еще какой хаускпиниг инфы
Вроде бы твой хеш по умолчанию это адрес в памяти, но если тебя двинули, то хеш нужно сохранить например: а это 4 байта
bormand # 0 ⇈
Звучит как не особо удачная идея... Все объекты же рождаются в маленьком "быстром" поколении. С округлением на 16 там вообще вариантов кот наплакал.
MAKAKA # 0 ⇈
Если у тебя рядом лежат питухи, это не значит, что у них хеши 1,2,3,4, лол
хеш должен иметь неплохой.. этот... как его... ну всмысле рандомным... распределение, да?
bormand # 0 ⇈
Вот смотри. Я насоздавал мешок больших объектов и вставил их в мапу. Пришёл ГЦ и перенёс их в другое поколение. Я насоздавал ещё мешок таких же объектов. И они получили те же самые хеши, что и прошлые. В итоге каждая вставка с коллизией.
А если ещё что-то внешнее подмешивать, то нахуй нужен адрес?
guest # 0 ⇈
"The hashCode may or may not be implemented as some function of an object's memory address at some point in time" (c)
Зачнит, всё таки так. Или было когда-то.
>то нахуй нужен адрес?
Потому что легко взять что-то уникальное для объекта
bormand # 0 ⇈
0) ос рандом
1) функция от адреса
2) единичка
3) глобальный счётчик
4) просто адрес
5) тред локал рандом
В комментах написано, что последний самый годный.
Как выбирается вариант я пока не понял, в веб-интерфейсе хуй что найдёшь.
MAKAKA # 0 ⇈
ну всё таки был когда-то адрес, не с потолка я это высосал
bormand # 0 ⇈
З.Ы. Нашёл: -XX:+UnlockExperimentalVMOptions -XX:hashCode=2
guest # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
но это оч имплементейш зависимо, нехуяна это завязываца конечно
вангую, что двадцать лет назад был адрес, потом в джаву завезли годный PRNG (или там доступ к ОСному рендому) и тред локалы итд, и тогда поменяли
Короче, ничего кроме 4 и 1 не могло работать в Апплете на Java1 в четвертом эксплорере на Win98
bormand # 0 ⇈
А более старые не опенсурсны, походу.
gost # 0
guest # 0 ⇈
MAKAKA # 0 ⇈
AcademySoft в правом нижнем углу это же которые тетрис?
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
Кстати, проще всего доказать, что нельзя соединить две точки спрямляемой кривой бесконечной длины. Доказательство этого факта оставим на совести читателя.[/color]
guest # 0 ⇈
Попробую определить:
Чтобы если взять любую точку кривой, то в сколь угодно малой окрестности этой точки существует другая точка, принадлежащая кривой. Вполне возможно, и к этому можно доебаться, как минимум потому, что я не могу объяснить что такое «кривая».
(у меня линия=кривая)
gost # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
1: https://i.imgur.com/gSGyLhi.png
2: https://i.imgur.com/9RBPukk.png
Шибинский В. М. Примеры и контрпримеры в курсе математического анализа. Учебное пособие. — М.: Высшая школа, 2007. — 543 с. — ISBN 978-5-06-005774-4.
guest # 0 ⇈
Мне нужна не только ограниченная, но и начинающаяся и заканчивающаяся в конкретных точках. Там это выполняется?
Я могу закрутить спираль, она будет ограниченной, но мне не подходит.
gost # 0 ⇈
Да, это, насколько я понял, и называется «ограниченная». Приведённая там в качестве реального примера кривая — это просто график функции x*sin(1/x), дополненной в нуле нулём. Соответственно, если тебе надо соединить две конкретные точки — возьми две любых различных точки (лежащих по разные стороны оси Y) на этом графике и совмести их с нужными тебе (поворот графика + растяжение).
guest # 0 ⇈
Это просто заебись! То, о чём я спрашивал. Только пруфец, к сожалению, мне понять не судьба.
guest # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
Предел в точке 0 очевидным имеется (достаточно посмотреть на график или зайти на «WolframAlpha»), значение f(0) мы дополнили значением этого предела => по определению получили всюду непрерывную функцию (в других точках она уж точно непрыравна). Это стандартная практика устранения разрывов.
guest # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
Да, я понимаю, что даже под определение, которое я дал выше, это подходит.
gost # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
f(x) = x*sin(1/x) - не подходит, но я чот не могу объяснить почему, хотя ее вполне можно разбить на (, 0), [0; 0], (0, )
gost # 0 ⇈
guest # 0 ⇈
Излом меня устраивает, бесконечно приближающаяся питушня к точке + отдельное заполнение этой точки — смущает.
gost # 0 ⇈
Кстати, пресловутая снежинка Коха же тоже, кажется, непрерывна.
UPD: Да, пишут, что «Она [снежинка] непрерывна, но нигде не дифференцируема».
guest # 0 ⇈
gost # 0 ⇈
gost # 0 ⇈
Потому что по спрямляемая кривая — это кривая, имеющая конечную длину. По определению.
MAKAKA # 0
У вас как бы есть view port или window, через который вы видите кусочек системы, но как только вы перещаете внимание на другую часть -- старая вымывается из кеша
Есть ощущение, что всё в принципе верно, но как-бы нет общей картины.
Пытаюсь побороть диаграмками на листочке, но может быть нужен глицин?
gost # 0 ⇈
bormand # 0 ⇈
j123123 # 0 ⇈
bormand # 0 ⇈
Лучше делать архитектуру так, чтобы её можно было изучать по частям. Иначе потом весь отдел на глицине сидеть будет.
defecate-plusplus # 0 ⇈
Требуйте лизергиновую кислоту в аптеках вашего города.
j123123 # 0 ⇈
bormand # 0 ⇈
МАКАКА не на J пишет, скорее всего.
CHayT # 0 ⇈
MAKAKA # 0 ⇈
программировать на яже так же вкусно и интересно, как жевать лист А4.
bormand # 0 ⇈
Да нет, действительно йажа.
bootcamp_dropout # 0 ⇈
gostinho # 0 ⇈
bootcamp_dropout # 0 ⇈
gost # 0
CBuHOKYP # 0 ⇈
Desktop # 0 ⇈
CBuHOKYP # 0 ⇈
gost # 0 ⇈
Desktop # 0 ⇈
- а левый мизинец правой руки как поживает?
CBuHOKYP # 0 ⇈
gostinho # 0 ⇈
bormand # 0 ⇈
1024-- # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
gostinho # 0 ⇈
Desktop # 0
bormand # 0 ⇈
gostinho # 0 ⇈
Desktop # 0 ⇈
gostinho # 0 ⇈
gostinho # 0 ⇈
+ Кто-то спаливался?
guest # 0
bormand # 0 ⇈
guest # 0 ⇈
Я хочу переслать один питухбайт с диска на диск, зачем мне его в память читать?
особенно цинично, когда у меня сложная топлогия например с SAS, и есть два диска на экспандере, и я между ними пишу, и данные пиздуют сначала в хост.
defecate-plusplus # 0 ⇈
guest # 0 ⇈
так я предлагаю, чтобы файловая система сначала посчитала блоки (правда они должны быть последоватльными) и дала команду
bormand # 0 ⇈
А про sata ahci да nvme я сомневаюсь, что кто-то заморачивался и усложнял железо ради этого. У них же вся передача данных под bus master'ом идёт, емнип. Да и команд тоже. Слейвами они только по мелочи могут быть.
guest # 0 ⇈
было бы интересно такое изобрести, например для зеркалирования
bormand # 0 ⇈
Могут -- не значит что говорят. Из всех девайсов по-моему только видюха умеет быть полноценным слейвом. А не показывать на слейв интерфейсе десяток сраных регистров, а всё остальное делать через память как мастер.
> для зеркалирования
А измеримый профит будет? Есть ли смысл ради этого делать поддержку в дисках, контроллерах, дровах, осях и софте?
З.Ы. Если там сам контроллер RAID'ом занимается, то зеркалировать он поди умеет. Но для этого ему не нужна "пересылка файлов", это гораздо более простая операция.
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
Меня эта мысля посетила как раз при наблюдении за тополигией SAS.
В PCI-E x8 втыкнут HBA адаптер.
В адаптере 8 каналов, каждый по 6 гигабит. Они разеделны на группы по 4 канала (wide channel)
В один такой wide channel втыкнут экспандер (это типа свитча, он видится как один таргет, а диски в нем LUNы вроде).
В экспандере 8 дисков, каждый сидит на канале по 6 гб, но аплинк все равно ограничен четырьмя каналами
И вот с одного диска пишут на другой. И всё это пиздует в память сначала, через SAS, через PCI-E, ну не пиздец?
bormand # 0 ⇈
Софтварный RAID чинить разве что.
СУБД обычно память-диск. Всякие файлопомойки -- сеть-диск. Бекапилки и инсталляторы сжимают и разжимают.
Xepyc_DJIuHyc # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
есть в соседней комнате два массива дисков; нужно один на другой скопировать
а в это время в еще другой комнате тоже самое
а по середине всего стоит компутер, и зачем-то управляет. Проще было бы сказать железу "скопируй"
bormand # 0 ⇈
Ну где ещё бекапят просто копированием без зожатия и дедупликации, да ещё и в пределах одного стореджа.
Desktop # 0
defecate-plusplus # 0 ⇈
а твой вопрос гуглится быстро же
Desktop # 0 ⇈
CHayT # 0 ⇈
Hakyll — тыкал, но, если честно, не понял, зачем они переизобрели свой дурацкий эквивалент make. Много неоправданной сложности.
Desktop # 0 ⇈
- это ты с козырей зашёл!
CHayT # 0 ⇈
defecate-plusplus # 0 ⇈
ок, согласен, можно обернуть в makefile
CHayT # 0 ⇈
P.S. https://github.com/csb6/html-plus-plus
CHayT # 0 ⇈
А ещё GNU troff — офигенная тема. Им не только man-странички можно делать, но и html.
guest # 0 ⇈
bootcamp_dropout # 0 ⇈
но наверное уже не модно
Desktop # 0 ⇈
gostinho # 0
gost # 0 ⇈
Если трафик забит — ставить «Cloudflare» и постепенно повышать уровень паранойи, поскольку тут уже ничего не поделаешь (только надо не быть Страйкером и отключить скрытие e-mail'ов), если не забит — можно попробовать fail2ban или подобные питушни для L7 или попердолиться с iptables для L4 (но для этого надо внимательно изучать tcpdump и понимать, что блокируешь, чтобы не забанить невинных Сём).
guest # 0 ⇈
bormand # 0 ⇈
Кого ты там так разозлил?
guest # 0 ⇈
Это же можно взять и смыть нахуй сайты конкурентов, если есть такой ботнетик.
gost # 0 ⇈
Ну да, так оно и делается. Правда, если конкурент — это бизнес, и бизнесу не похуй на сайт, то уж двести баксов на https://www.cloudflare.com/plans/business/ найти явно будет не проблема, после чего маленькие победоносные ботнетики гарантированно идут нахуй.
gostinho # 0 ⇈
gost # 0 ⇈
Ну и даже если конкурирует — не вижу никаких проблем руководству выделить 0/20/200 баксов на «Cloudflare», если админ (или кто у них там за сайт отвечает) правильно всё обоснует.
Конечно, могут быть проблемы с хранением ПД или ещё какими-нибудь законодательными заморочками: в таком случае придётся разоряться на российский «QRator» — у них там вроде как даже какие-то бумажки из многобуквенных контор есть. Стоить это, правда, будет существенно дороже, а качество будет существенно хуже (не так давно рассказывал про потрясающую работу «QRator» на сайте «Ситилинка», я его ебал срал говно).
bormand # 0 ⇈
С прокачанной харизмой можно призвать легион анонимов с лоиком.
CHayT # 0 ⇈
bormand # 0 ⇈
Когда-то в компах стояли лампочки, а теперь в лампочках стоят компы.
Какая эволюция )))
CHayT # 0 ⇈
Керосиновые.
defecate-plusplus # 0 ⇈
внутренние системы в инет особо не смотрят, а обмен информацией вообще у них, скорее всего, телексами по старинке
Desktop # 0 ⇈
gostinho # 0 ⇈
gost # 0 ⇈
За это время тебя вычислят, ботнет уничтожат, а ты поедешь в Магадан лес рубить.
guest # 0 ⇈
До его кода даже не дойдёт. Или даже если он в nginx это напишет, всё равно можно лечь, хотя я не знаю какого рпс будет достаточно.
gost # 0 ⇈
UPD: Гугли «botnet shutdown».
guest # 0 ⇈
gost # 0 ⇈
Если это как минимум «VPS» — гуглить «fail2ban» и устанавливать, копируя команды в рутовую консоль.
defecate-plusplus # 0 ⇈
Вроде, для таких диспансеры строят и на наши налоги лечат.
guest # 0 ⇈
defecate-plusplus # 0 ⇈
На ГНУ\маке и ГНУ\буст-спирит делают блоги. Ты как из палаты сбежал, уважаемый? Сейчас обсудим, не убегай
guest # 0 ⇈
MAKAKA # 0 ⇈
на страничке вконтакте, в фейсбуке или влайджорнале.
guest # 0 ⇈
MAKAKA # 0 ⇈
Возьми статичесеий генератор сайтов, и серви статику.
Для комментов же используй внешний сервис типа дискасс
Заддосить статику сложнее, и самое главное --- её очень легко фейловерить
Разложи статику скриптом на 20 разных серверов, и всех их отдай раундробином по DNS с кешированием на 10 минут.
Питухи за дудосили один? Просто убери его IP, и потеки.
Вообще, бекенд это зло. Если можно без него, то лучше без него.
CHayT # 0 ⇈
Более того, к ней можно и нужно прикрутить CDN, и пусть ддосят клаудфларю.
guest # 0 ⇈
gost # 0 ⇈
MAKAKA # 0 ⇈
а еще можно захостить это на гитхабе вроде
CHayT # 0 ⇈
Да, он даже в https со своим доменным именем умеет.
defecate-plusplus # 0 ⇈
просто сами тебя забанят, за нарушение каких-нибудь правил, какой смысл убытки нести
это ж даже дороже, чем бесплатно сёмазлу чинить установку питон на шиндошс икзпи
bootcamp_dropout # 0 ⇈
defecate-plusplus # 0 ⇈
bootcamp_dropout # 0 ⇈
gost # 0 ⇈
Ну и да, конечно, если кулинарный блог кого-то очень сильно разозлил (так, чтобы это заметили чуваки с общей мощностью сети на 51 терабит) — его могут вежливо попросить увеличить план или выметаться.
guest # 0 ⇈
вот я хочу положить сайт конкурента на 24 часа, похуй вообще где он хостится.
Сколько биткоинов я должен какому анонимусу заслать?
gost # 0 ⇈
MAKAKA # 0 ⇈
Я ж не собираюсь никого досить) Мне было интересно про порядок цен узнать.
Например, "хостящийся за клаудфреле питух может поиметь проблемы, если его враги заплатят пятьсот тысяч долларов примерно"
Просто иначе странно получается. Я могу за 200 баксов в месяц (копейки для компании средних размеров) обезопасить свое вебговно так, что его вообще не ддоснут структуры, уровнем меньше ЦРУ?
gost # 0 ⇈
Ну, не совсем. Ещё остаются вореанты «умной силы». Например, если у тебя на сайте есть какой-нибудь тяжёлый скрипт, жрущий одно ядро на протяжение секунды, то умный хакер может сделать пару десятков умных ботов (стучащихся на сайт через «Selenium», например), которые тебе очень маленьким количеством запросов тупо сожрут всё процессорное время — и «Cloudflare» их вряд ли заметит. Чтобы побороть такое — админ должен вручную врубить параноидальный режим «I'm under attack mode», который будет показывать посетителям «Checking your browser before accessing govnosite.ru» с капчей — но это, как ты понимаешь, негативно сказывается на UX.
MAKAKA # 0 ⇈
А тяжелый скрипт нужно выносить в асинхронщину, и там обрабатывать, а пользователю сервать заранее предгенеренное закешированное говно.
Конечно, если ты Яндекс, то такая штука не прокатит.
Но для обычного питуоза вполне.
Еще вариант требовать аутентификации для доступа к серьезным скриптам
gost # 0 ⇈
guest # 0 ⇈
Но вообще если у тебя есть волшебный PHP скрипт на сайте, при обращении к которому получается N+1 запросов, и страничка генерируется полторы секунды, то школьник тебя всё равно сможет положить
gost # 0 ⇈
MAKAKA # 0 ⇈
Я помню тока классическую SYN атаку, еще из моего децтва.
Клиент: SYN
Сервер: (создает в памяти какие-то структуры для поддержки соединения): ACK
Клиент: (ушел в туман)
Клиент: Снова SYN
ну и сервер раком становился в итоге. Лечилось установкой Syncookie или спец железкой, которая работала tcp proxy.
А если школьник начнет на мою VPSку за два доллара с десяти тысячи зараженных роутеров, виндов и вордпрессов траффик слать, то я конечно лягу
gost # 0 ⇈
MAKAKA # 0 ⇈
спуфился SRC у адреса, или у школьника был ботнет на миллион питухов?
Просто в первом случае это должна фильтровать сеть провайдера, причем на железном уровне, не?
gost # 0 ⇈
Вот это.
> Просто в первом случае это должна фильтровать сеть провайдера, причем на железном уровне, не?
А для этого нужна кооперация (в идеале) всех провайдеров. Ещё лет пять назад таковой не существовало, и любой школьник мог послать пакет с любым обратным адресом куда угодно. Сейчас, конечно, с этим получше (не в последнюю очередь благодаря «Cloudflare», которые активно пропагандируют соответствующие RFC), но всё равно спуфинг остаётся серьёзной угрозой, судя по большому количеству открытых в последнее время amplification-атак.
guest # 0 ⇈
Что мешает провайдеру тупо резать неверный SRC прямо около последней мили? на кой хуй ему участвовать в этой специальной олимпиаде по амплификейшену? Лень? Распиздяйство?
RFC написали еще когда школьник наш не родился:
https://tools.ietf.org/html/rfc2827
[quote]
However, by
restricting transit traffic which originates from a downstream
network to known, and intentionally advertised, prefix(es), the
problem of source address spoofing can be virtually eliminated in this attack scenario.
[/quote]
Может быть в большинстве провайдеров админами работают ротоёбы?
Типа это как SQL инъекция, XSS или N+1?
Все нормальные спецы знают, но нормальных на всех не хватает?
gost # 0 ⇈
Сложно, непонятно, мало кто знал/знает.
> Все нормальные спецы знают, но нормальных на всех не хватает?
На «Хабре», когда он ещё был торт (когда там сидели реальные специалисты), в комментариях к статьям про спуфинг половина комментаторов удивлялась, что так можно, а другая — заявляла, что так нельзя.
guest # 0 ⇈
Причем в RFC речь идет даже не о ендюзерах, а о граничных маршрутизаторах (пусть и тупиковых ASок): Вон они пишут, что принимать траффик нужно только с тех префиксов, пути до которых маршрутизатор анонисирует.
Так что это речь о крупных питухах уровня предприятия или хостера или ДЦ.
А уж для конечного питуха сам бог велел..
Вроде серьезные железки умеют понимать IP чуть ли не ASICом (hardware cisco express forwarding или как оно), по идее и фильтровать могут...
gost # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
кстати, о виртуалках: вы знали, что MS бесплатно раздает версию сервера hyper-v?
Это такая винда, откуда убрали весь гуй.
Ты ее включаешь, и там только cmd, powershell и пара cmd файлов для удобной настройки.
По лицензии ты имеешь право только запускать на ней hyper-v, но технически можешь поставить почти что хочешь.
К примеру, работает SMB (роль file server), работают все гуи программы с GDI (но может быть не работает DirectX).
Админить можно через powershell, или удаленно (подключая mmc через RPC), а можно так же бесплатно поставить Admin Center: это такая веб морда для управления сервером.
винда занимает 8 гигов на диске, что не обычно для винды.
gost # 0 ⇈
А чем это отличается от обычной пиратской винды с «Рутрекера»?
guest # 0 ⇈
2. MS утверждает, что благодаря этому меньше сюрфейс атаки
3. меньше места на диске, и вообще меньше ресурсов
4. не нужно ебаться с кряком
5. если ты фирма, то ты не хочешь пиратку использовать
defecate-plusplus # 0 ⇈
guest # 0 ⇈
Если у тебя вся сеть на винде, то зачем тебе покупать еще и линуксоида? ради того, чтобы он KVM поднял?
Или тем, у кого по какой-то причине нет каких-то драйверов под другие ОС.
Или есть какой-то софт, который работает только на винде (например, легаси)
gost # 0 ⇈
Если ты нарушаешь условия лицензии — ты де-факто «используешь пиратку». Собственно, об этом я и говорил: какая разница для фирмы, как нарушать лицензию?
guest # 0 ⇈
MAKAKA # 0 ⇈
Они запоминают зараженные айпишники и блекхолят их, причем наверное рассылают это тем, с кем они пирятся (rfc7999).
Сколько в мире больных адресов, с которых ботоводы досят?
Чуваки размером с клаудфлёре могут составить их список.
gost # 0 ⇈
Убытки от любых видов DDoS-атак, которые реально могут попасть на любительские блоги, для «Cloudflare» попросту непринципиальны: у них настолько огромная сеть, что даже те десять тысяч Иньоных ботов могут дудосить их хоть до посинения, их инженеры этого даже не заметят.
MAKAKA # 0 ⇈
Выходит, что ботнет разобъется на тысячу маленьких ботнетиков, и каждый будет ебсти ближайшее зеркало без серьезного ущерба?
gost # 0 ⇈
>>> Magic Transit is Cloudflare’s offering for networks—it uses Border Gateway Protocol (BGP) to reroute incoming customer network traffic and block threats.
>>> Cloudflare delivers DDoS mitigation using our entire network. This network has a capacity of over 51 Tbps and spans more than 200 cities in 100 countries.
С такой мощностью сети на атаки стоимостью меньше пары-другой сотен тысяч долларов им просто похуй.
CHayT # 0 ⇈
Как макака сказал, скорее всего они этим тупо свои фильтры тренируют.
1024-- # 0 ⇈
gost # 0 ⇈
Desktop # 0 ⇈
gost # 0 ⇈
А ещё статику можно захостить напрямую в «Cloudflare»: https://www.coywolf.news/webmaster/cloudflare-static-website/ — и пущщай хоть обдудосятся.
gost # 0 ⇈
g: "fail2ban". Если у тебя будет слишком маленький ботнет, который не сможет забить трафик целевого сервера — fail2ban просто забанит всех ботов через «iptables», так что их трафик даже до «nginx» не дойдёт (если правильно банить — даже до conntrack не дойдёт).
guest # 0 ⇈
то скорее всего его найдут ботнеты, и забьют вирусами под завязку, и через него будут ддосить другие сайты
gost # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
Правда потом придётся продаться на органы, но это мелочи.
guest # 0 ⇈
gost # 0 ⇈
* Тогда ботовод просто объявит услугу ежемесячной и с первого числа начнёт все заново.
guest # 0 ⇈
А как же "слово хакера"?
gost # 0 ⇈
CHayT # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
Desktop # 0 ⇈
gost # 0
> Небольшой класс для работы с БД ( PDO )
> Привет, Хабр! Очень много статей написано о PDO, но при этом очень мало реальных примеров. В этой статье я хочу представить свою версию класса для работы с базой данных (далее - БД). Эта статья будет полезна начинающим программистам, которые только осваивают эту технологию.
>
М-м-м… Конфетка!
gost # 0 ⇈
Какая умная макака!
bormand # 0 ⇈
Подготовленная!
bormand # 0 ⇈
gost # 0 ⇈
1024-- # 0 ⇈
С этого и надо было начинать. Сразу видно, насколько код полезен и всеобъемлющ. Или, точнее, всевсасывающ.
А то какие-то непонятные $stmt->bindValue(":$key", $value); постите. Только интуитивно кажется, что не надо вручную разгребать массив питушень, что он должен разгребаться самой библиотекой, но всё равно неясно, как оно в пхп устроено.
guest # 0 ⇈
Планируется ли добавление функционала для вызова UPDATE и DELETE?
guest # 0 ⇈
"Очень много написано о том, почему нельзя читать неинициализированную память, но очень мало реальных примеров. Я написал класс для инициализации памяти"
Если ПХПшника скрестить с админом:
"Очень много написано о том, почему нельзя читать делать пустой пароль на сервере или сетевом оборудованиии, но реальных примеров мало. Я написал скрипт для установки пароля"
Если ПХПшника скрестить с DBA:
"Очень много написано о том, почему нельзя делать внешнее объединение без индекса по %LIKE% на таблице в миллион записей семь раз в секунду, но реальных примеров мало. Я написал скрипт который устанавливает индексы"
gost # 0 ⇈
Кстати, такой скрипт был бы полезен. Берём БД, логгируем запросы в течение суток, скармливаем вместе со схемой скрипту — а скрипт выплёвывает оптимальные индексы.
gost # 0 ⇈
guest # 0 ⇈
https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/start-and-use-the-database-engine-tuning-advisor?view=sql-server-ver15
типа такова?
gost # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Это плохой, неудачный, бесполезный косплей научной статьи.
Хабраблядь пытается обосновать нужность своего туториала, как это делают взрослые дядьки. Вот только гуглить и искать прошлые наработки по этой теме она не научилась. И перечислять их объективные недостатки, которые будут устранены в данной работе -- тоже.
Поэтому данная фраза -- 99% маркер трешака.
MAKAKA # 0 ⇈
[quote]
нужность своего туториала, как это делают взрослые дядьки. Вот только гуглить и искать прошлые наработки по этой теме она не научилась
[/quote]
Так это в целом про ПХП: они всё время пытаются что-то сделать как взрослые дядьки, но у них ничего не получается.
Ценность этой статьи примерно равна вот этому классу:
https://github.com/widmogrod/php-exceptions/blob/master/src/Exception/Exception.php
Или вот этому
https://github.com/sebastianbergmann/git/blob/master/src/Exception/Exception.php
bormand # 0 ⇈
defecate-plusplus # 0 ⇈
gost # 0 ⇈
Блядь, бесит жутко. Аж из-за одного вида этой фразы начинает пригорать.
bormand # 0 ⇈
Desktop # 0 ⇈
guest # 0
https://imgur.com/a/KFgdacR
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
и да: в мастер я зафорспушил
guest # 0 ⇈
MAKAKA # 0 ⇈
это за ГОД?
а я сдуру подумал, что за ВСЮ жизнь
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
ну типа ставишь галочку, и идешь делать
bootcamp_dropout # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
А, там онлайн.
guest # 0 ⇈
я вообще не люблю конференции и не понимаю их
guest # 0 ⇈
gost # 0
Какой багорище )))
Прямо чувствуется, как у клепателей говнокурсов пригорает жопа.
bootcamp_dropout # 0 ⇈
gost # 0 ⇈
bootcamp_dropout # 0 ⇈
defecate-plusplus # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
*тян-и-дезерт-игл.мп4*
MAKAKA # 0 ⇈
1024-- # 0 ⇈
Если кому-то понадобится специалист на работу, он может не проводить собеседований и не мониторить активность на ГК, а просто открыть каталог бормандированных специалистов, пролистать все гоатсе с ворециями и выбрать нужного человека.
bormand # 0 ⇈
Это медицинский термин? Что-то про процент головного мозга, зохаванного аниме?
defecate-plusplus # 0 ⇈
gost # 0 ⇈
Кстати, а работодателю что-нибудь мешает платить 1 р. суточных — ну, кроме того, что работник обидится?
bormand # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
У меня однажды была командировка, где пришлось по вечерам бесплатно бухать годное пиво и кушать вкусную еду. Неплохое повышение квалификации.
defecate-plusplus # 0 ⇈
Для федеральных учреждений нормы установило Правительство (постановление от 02.10.2002 № 729). Норма – 100 руб. за каждый день нахождения в командировке. Суточные в большем размере могут полагаться руководителю учреждения, только если у вас есть экономия бюджетных средств, либо средства, которые вы получили от приносящей доход деятельности.
defecate-plusplus # 0 ⇈
Если на новый год получать +оклад, тогда уже норм, в отпуске будет выше средняя, чем текущий оклад.
guest # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
1024-- # 0 ⇈
У кого-то из топ 5 мира даже видео лекций выложены.
gost # 0 ⇈
MAKAKA # 0 ⇈
Пиратские версии курсов такой возможностью не обладают.
Не дайте себя обмануть. Приобретайте лицензионные курсы "Стань PHP разработчиком за 24 часа" за 19,990.
Вниание! 10% скидка по коду "#ХОЧУКУРСЫ"
1024-- # 0 ⇈
guest # 0 ⇈
1024-- # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
вечно путаю хачукрысы и кукрыниксы
gost # 0 ⇈
Одна буква от 282.
guest # 0 ⇈
1024-- # 0 ⇈
Одна цифра от стандарта скриптушни.
nepeKamHblu_nemyx # 0
https://govnokod.ru/27186
https://govnokod.xyz/_27186/
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0