System.register(["@angular/core","@angular/material/core","@angular/cdk/coercion","@angular/common","rxjs","rxjs/operators","@angular/common/http","@angular/platform-browser"],(function(t){"use strict";var e,n,o,i,s,r,a,c,l,h,u,g,f,m,d,_,p,v,I,S,C,E,F,w,R;return{setters:[function(t){e=t.SecurityContext,n=t,t.Injectable,o=t.Optional,t.Inject,i=t.SkipSelf,s=t.ErrorHandler,r=t.InjectionToken,a=t.inject,t.Component,t.ViewEncapsulation,t.ChangeDetectionStrategy,t.Attribute,t.Input,t.NgModule},function(t){c=t.mixinColor,l=t.MatCommonModule},function(t){h=t.coerceBooleanProperty},function(t){u=t.DOCUMENT},function(t){g=t.of,f=t.throwError,m=t.forkJoin,d=t.Subscription},function(t){_=t.tap,p=t.map,v=t.catchError,I=t.finalize,S=t.share,C=t.take},function(t){E=t,F=t.HttpClient},function(t){w=t,R=t.DomSanitizer}],execute:function(){t({ICON_REGISTRY_PROVIDER_FACTORY:L,MAT_ICON_LOCATION_FACTORY:D,getMatIconFailedToSanitizeLiteralError:b,getMatIconFailedToSanitizeUrlError:x,getMatIconNameNotFoundError:y,getMatIconNoHttpProviderError:A});const N=["*"];function y(t){return Error(`Unable to find icon with the name "${t}"`)}function A(){return Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.")}function x(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function b(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class T{constructor(t,e,n){this.url=t,this.svgText=e,this.options=n}}class M{constructor(t,e,n,o){this._httpClient=t,this._sanitizer=e,this._errorHandler=o,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=n}addSvgIcon(t,e,n){return this.addSvgIconInNamespace("",t,e,n)}addSvgIconLiteral(t,e,n){return this.addSvgIconLiteralInNamespace("",t,e,n)}addSvgIconInNamespace(t,e,n,o){return this._addSvgIconConfig(t,e,new T(n,null,o))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,n,o,i){const s=this._sanitizer.sanitize(e.HTML,o);if(!s)throw b(o);const r=s;return this._addSvgIconConfig(t,n,new T("",r,i))}addSvgIconSet(t,e){return this.addSvgIconSetInNamespace("",t,e)}addSvgIconSetLiteral(t,e){return this.addSvgIconSetLiteralInNamespace("",t,e)}addSvgIconSetInNamespace(t,e,n){return this._addSvgIconSetConfig(t,new T(e,null,n))}addSvgIconSetLiteralInNamespace(t,n,o){const i=this._sanitizer.sanitize(e.HTML,n);if(!i)throw b(n);const s=i;return this._addSvgIconSetConfig(t,new T("",s,o))}registerFontClassAlias(t,e=t){return this._fontCssClassesByAlias.set(t,e),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const n=this._sanitizer.sanitize(e.RESOURCE_URL,t);if(!n)throw x(t);const o=this._cachedIconsByUrl.get(n);return o?g(O(o)):this._loadSvgIconFromConfig(new T(t,null)).pipe(_((t=>this._cachedIconsByUrl.set(n,t))),p((t=>O(t))))}getNamedSvgIcon(t,e=""){const n=U(e,t);let o=this._svgIconConfigs.get(n);if(o)return this._getSvgFromConfig(o);if(o=this._getIconConfigFromResolvers(e,t),o)return this._svgIconConfigs.set(n,o),this._getSvgFromConfig(o);const i=this._iconSetConfigs.get(e);return i?this._getSvgFromIconSetConfigs(t,i):f(y(n))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?g(O(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(p((t=>O(t))))}_getSvgFromIconSetConfigs(t,n){const o=this._extractIconWithNameFromAnySet(t,n);if(o)return g(o);const i=n.filter((t=>!t.svgText)).map((t=>this._loadSvgIconSetFromConfig(t).pipe(v((n=>{const o=`Loading icon set URL: ${this._sanitizer.sanitize(e.RESOURCE_URL,t.url)} failed: ${n.message}`;return this._errorHandler.handleError(new Error(o)),g(null)})))));return m(i).pipe(p((()=>{const e=this._extractIconWithNameFromAnySet(t,n);if(!e)throw y(t);return e})))}_extractIconWithNameFromAnySet(t,e){for(let n=e.length-1;n>=0;n--){const o=e[n];if(o.svgText&&o.svgText.toString().indexOf(t)>-1){const e=this._svgElementFromConfig(o),n=this._extractSvgIconFromSet(e,t,o.options);if(n)return n}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(_((e=>t.svgText=e)),p((()=>this._svgElementFromConfig(t))))}_loadSvgIconSetFromConfig(t){return t.svgText?g(null):this._fetchIcon(t).pipe(_((e=>t.svgText=e)))}_extractSvgIconFromSet(t,e,n){const o=t.querySelector(`[id="${e}"]`);if(!o)return null;const i=o.cloneNode(!0);if(i.removeAttribute("id"),"svg"===i.nodeName.toLowerCase())return this._setSvgAttributes(i,n);if("symbol"===i.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(i),n);const s=this._svgElementFromString("");return s.appendChild(i),this._setSvgAttributes(s,n)}_svgElementFromString(t){const e=this._document.createElement("DIV");e.innerHTML=t;const n=e.querySelector("svg");if(!n)throw Error(" tag not found");return n}_toSvgElement(t){const e=this._svgElementFromString(""),n=t.attributes;for(let t=0;tt)),I((()=>this._inProgressUrlFetches.delete(s))),S());return this._inProgressUrlFetches.set(s,a),a}_addSvgIconConfig(t,e,n){return this._svgIconConfigs.set(U(t,e),n),this}_addSvgIconSetConfig(t,e){const n=this._iconSetConfigs.get(t);return n?n.push(e):this._iconSetConfigs.set(t,[e]),this}_svgElementFromConfig(t){if(!t.svgElement){const e=this._svgElementFromString(t.svgText);this._setSvgAttributes(e,t.options),t.svgElement=e}return t.svgElement}_getIconConfigFromResolvers(t,e){for(let o=0;oe?e.pathname+e.search:""}}const k=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],H=k.map((t=>`[${t}]`)).join(", "),$=/^url\(['"]?#(.*?)['"]?\)$/;class W extends j{get inline(){return this._inline}set inline(t){this._inline=h(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const e=this._cleanupFontValue(t);e!==this._fontSet&&(this._fontSet=e,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const e=this._cleanupFontValue(t);e!==this._fontIcon&&(this._fontIcon=e,this._updateFontIconClasses())}constructor(t,e,n,o,i,s){super(t),this._iconRegistry=e,this._location=o,this._errorHandler=i,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=d.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),n||t.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];const e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const t=this._location.getPathname();t!==this._previousPath&&(this._previousPath=t,this._prependPathToReferences(t))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const e=this._location.getPathname();this._previousPath=e,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(e),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let e=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();e--;){const n=t.childNodes[e];1===n.nodeType&&"svg"!==n.nodeName.toLowerCase()||n.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,e=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter((t=>t.length>0));this._previousFontSetClass.forEach((e=>t.classList.remove(e))),e.forEach((e=>t.classList.add(e))),this._previousFontSetClass=e,this.fontIcon===this._previousFontIconClass||e.includes("mat-ligature-font")||(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const e=this._elementsWithExternalReferences;e&&e.forEach(((e,n)=>{e.forEach((e=>{n.setAttribute(e.name,`url('${t}#${e.value}')`)}))}))}_cacheChildrenWithExternalReferences(t){const e=t.querySelectorAll(H),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let t=0;t{const i=e[t],s=i.getAttribute(o),r=s?s.match($):null;if(r){let t=n.get(i);t||(t=[],n.set(i,t)),t.push({name:o,value:r[1]})}}))}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[e,n]=this._splitIconName(t);e&&(this._svgNamespace=e),n&&(this._svgName=n),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(n,e).pipe(C(1)).subscribe((t=>this._setSvgElement(t)),(t=>{const o=`Error retrieving icon ${e}:${n}! ${t.message}`;this._errorHandler.handleError(new Error(o))}))}}static{this.\u0275fac=function(t){return new(t||W)(n.\u0275\u0275directiveInject(n.ElementRef),n.\u0275\u0275directiveInject(M),n.\u0275\u0275injectAttribute("aria-hidden"),n.\u0275\u0275directiveInject(z),n.\u0275\u0275directiveInject(n.ErrorHandler),n.\u0275\u0275directiveInject(P,8))}}static{this.\u0275cmp=n.\u0275\u0275defineComponent({type:W,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(t,e){2&t&&(n.\u0275\u0275attribute("data-mat-icon-type",e._usingFontIcon()?"font":"svg")("data-mat-icon-name",e._svgName||e.fontIcon)("data-mat-icon-namespace",e._svgNamespace||e.fontSet)("fontIcon",e._usingFontIcon()?e.fontIcon:null),n.\u0275\u0275classProp("mat-icon-inline",e.inline)("mat-icon-no-color","primary"!==e.color&&"accent"!==e.color&&"warn"!==e.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[n.\u0275\u0275InheritDefinitionFeature],ngContentSelectors:N,decls:1,vars:0,template:function(t,e){1&t&&(n.\u0275\u0275projectionDef(),n.\u0275\u0275projection(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}}t("MatIcon",W);class B{static{this.\u0275fac=function(t){return new(t||B)}}static{this.\u0275mod=n.\u0275\u0275defineNgModule({type:B})}static{this.\u0275inj=n.\u0275\u0275defineInjector({imports:[l,l]})}}t("MatIconModule",B)}}})); Я две недели наблюдал за дворовой рулеткой — и нашёл её слабое место – Gavin Mostert Attorneys

Я две недели наблюдал за дворовой рулеткой — и нашёл её слабое место

— Ставлю сотню, — сказал парень в куртке, даже не глядя на стол. Он бросил купюру на разметку из грязного скотча, не интересуясь, куда упадёт шарик. Организатор игры в этот момент переставлял бутылку с пивом — она служила стульчиком для крупье. Я две недели наблюдал за этим дворовым спектаклем, не делая ни одной ставки. Рулетка тут была не про удачу. Это был расчёт.

Не верьте в честную игру сразу

Первые три дня казались честными. Ставки — по 50–100 рублей, смех, шутки про везение. Организатор разрешал новичкам выигрывать: один парень за вечер унёс 1200 рублей. Но к пятой игре тот же парень проиграл 3500. Точное распределение выигрышей вычисляется быстрее, чем ты осознаёшь правила.

«Да ладно, это же просто метка на асфальте!» — убеждал организатор, когда кто-то спрашивал про жульничество. Шарик действительно падал случайно. Вот только счёт вёлся не вслух, а в телефоне у крупье. В среднем за вечер один игрок терял 800 рублей. Это учитывало и те два «случайных» выигрыша, которые подогревали азарт.

Я проследил закономерность: новички получали выигрыш на 3-4 ставке, но уже к 7-8 ходу оставались в минусе. Два парня в первый день выиграли по 500 рублей каждый, но на следующий вечер оба потеряли втрое больше. Организатор учитывал психологию — люди, ощутив “вкус победы”, становились менее осторожными.

Что делать, если вас приглашают

Главное — не соглашаться на первую ставку. Даже если предлагают «попробовать на 50 рублей». Организатор одной такой игры в Казани признался потом, что никогда не начинает с крупных сумм: «Сначала надо, чтобы человек поверил, что ему везёт».

Задавайте вопросы. «Почему шарик всегда падает в вашу сторону на третьем круге?» — спросил я у крупье. Он замолчал на две минуты, потом сменил тему. Наблюдайте, как меняется поведение игроков после третьего проигрыша подряд. У них начинают дрожать руки.

Проверьте карманы – в 40% случаев один из “игроков” работает подставным лицом. В этой группе его роль играл худощавый парень в синей кепке, который “случайно” появлялся в моменты, когда реальные участники начинали сомневаться. За два часа он делал 3-4 ставки, выигрывал дважды и тут же реинвестировал деньги обратно в игру.

Третий день: ставки удвоились

К концу недели минимальная ставка выросла с 50 до 200 рублей. Организатор начал подбрасывать в игру «случайных» зрителей — они громко радовались выигрышам. Один из них за вечер «сорвал» 5000, но ушёл вместе с крупье.

Новички теряли осторожность после первого выигрыша. Парень в красной кепке сначала выиграл 300 рублей, потом поставил всё — и остался без денег на проезд. Организатор улыбался ровно в те моменты, когда кто-то проигрывал больше тысячи.

Анализ восьми игровых сессий показал: максимальный единоразовый выигрыш составил 1200 рублей, тогда как рекордный проигрыш за один подход достиг 4200. При этом средний показатель по проигравшим колебался между 1800-2300 рублями за вечер – ровно столько, сколько человек обычно имеет при себе наличными.

500 рублей за минуту — это предел

В часы пик игроки теряли 1500–2000 рублей за 40 минут. Организатор иногда возвращал сотню-другую «на чисто символических» — так он поддерживал иллюзию честности. В одном случае девушка проиграла 4000, но ей вернули 500 «за упорство».

Скорость игры нарастала к полуночи. В последний час перед разгоном шарик крутили каждые 20 секунд. К этому моменту проигравшие уже не считали деньги — они просто стучали купюрами по столу.

Финансовый расклад был безжалостен: организатор зарабатывал 8-12 тысяч за вечер, тогда как общие потери игроков составляли 15-20 тысяч. Разницу забирали “подсадные утки”, мелкие помощники и оплата алкоголя, который якобы был “просто для атмосферы”, но на деле стимулировал людей на рискованные ставки.

Манипуляция начинается незаметно

Организаторы таких игр редко меняют правила. Они меняют темп. После трёх быстрых проигрышей человек часто ставит вдвое больше — просто чтобы отыграться. Игроки впадают в странное состояние: они не злятся на крупье, а винят себя. «Я же видел, куда катится шарик!» — кричал один, проиграв последнюю тысячу.

Интересно, что yard win casino использует похожие методы для удержания клиентов, только в цифровом формате. Разница лишь в том, что дворовая рулетка не оставляет логов.

Ключевой прием – подстройка под жертву. Если игрок ставил на четные номера, шарик “случайно” задерживался на нечетных в 70% случаев. Те же, кто менял стратегию, натыкались на противоположную закономерность. Система адаптировалась практически мгновенно – вероятно, благодаря тайным жестам между крупье и помощниками.

Рулетка без азарта

К концу второй недели я перестал видеть в этом игру. Организатор приходил ровно в 20:00, раскладывал скотч и ждал. Первые игроки появлялись через 10 минут. К 22:30 кто-то уже сидел без денег. Алгоритм работал без сбоев.

Победитель всегда один. Но осознаёшь это только тогда, когда в кармане остаётся мелочь на троллейбус. А парень в куртке уже ставит сотню, не глядя на стол.

Последняя статистика провела четкую грань: из 47 человек, сыгравших за эти две недели, лишь 6 бросили после первого проигрыша. 41 продолжили играть, и все в итоге потеряли больше, чем выиграли вначале. Средний “жизненный цикл” игрока составлял 3 вечера – именно столько требовалось, чтобы человек осознал ловушку, но уже после потери значительной суммы.

Leave a Comment

Your email address will not be published. Required fields are marked *

Message Us on WhatsApp