It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://easysamsungfrptools.ru

  1. <!doctype html>
  2. <html lang="ru-RU">
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1">
  6.  
  7.    <script>
  8.    var block_classes = ["content_rb", "cnt32_rl_bg_str", "rl_cnt_bg"];
  9.  
  10.    function addAttrItem(className) {
  11.        if (document.querySelector("." + className) && !block_classes.includes(className)) {
  12.            block_classes.push(className);
  13.        }
  14.    }
  15. </script><script>
  16.                function onErrorPlacing() {
  17.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  18.                        let errorInfo = [];
  19.                        cachePlacing('low',errorInfo);
  20.                    } else {
  21.                        setTimeout(function () {
  22.                            onErrorPlacing();
  23.                        }, 100)
  24.                    }
  25.                }
  26.                var xhr = new XMLHttpRequest();
  27.                xhr.open('GET',"//newrotatormarch23.bid/16q8b.json",true);
  28.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  29.                xhr.onreadystatechange = function() {
  30.                    if (xhr.status != 200) {
  31.                        if (xhr.statusText != 'abort') {
  32.                            onErrorPlacing();
  33.                        }
  34.                    }
  35.                };
  36.                xhr.send();
  37.            </script><script type="text/javascript" src="//easysamsungfrptools.ru/wp-content/16q8b.js?ver=1.0.4" id="16q8b-js" async=""></script><script>console.log('ad: header error')</script><script>
  38.                function onErrorPlacing() {
  39.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  40.                        let errorInfo = [];
  41.                        cachePlacing('low',errorInfo);
  42.                    } else {
  43.                        setTimeout(function () {
  44.                            onErrorPlacing();
  45.                        }, 100)
  46.                    }
  47.                }
  48.                var xhr = new XMLHttpRequest();
  49.                xhr.open('GET',"//newrotatormarch23.bid/16q8b.min.js",true);
  50.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  51.                xhr.onreadystatechange = function() {
  52.                    if (xhr.status != 200) {
  53.                        if (xhr.statusText != 'abort') {
  54.                            onErrorPlacing();
  55.                        }
  56.                    }
  57.                };
  58.                xhr.send();
  59.            </script><script type='text/javascript'> rbConfig={start:performance.now(),rbDomain:'newrotatormarch23.bid',rotator:'16q8b'};token=localStorage.getItem('16q8b')||(1e6+'').replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));rsdfhse=document.createElement('script'); rsdfhse.setAttribute('src','//newrotatormarch23.bid/16q8b.min.js?'+token);rsdfhse.setAttribute('async','async');rsdfhse.setAttribute('type','text/javascript');document.head.appendChild(rsdfhse); localStorage.setItem('16q8b', token);</script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
  60.  
  61. <title>Easy Samsung FRP Tool: скачать бесплатно версию 2022 v2, 2021 v1, 2020</title>
  62. <meta name="description" content="Easy Samsung FRP Tool - программа, специально разработанная для упрощения процесса обхода верификации аккаунта Google с любого телефона Samsung на Android" />
  63. <link rel="canonical" href="https://easysamsungfrptools.ru/" />
  64. <meta property="og:locale" content="ru_RU" />
  65. <meta property="og:type" content="website" />
  66. <meta property="og:title" content="Easy Samsung FRP Tool: скачать бесплатно версию 2022 v2, 2021 v1, 2020" />
  67. <meta property="og:description" content="Easy Samsung FRP Tool - программа, специально разработанная для упрощения процесса обхода верификации аккаунта Google с любого телефона Samsung на Android" />
  68. <meta property="og:url" content="https://easysamsungfrptools.ru/" />
  69. <meta property="og:site_name" content="Easy Samsung FRP Tools" />
  70. <meta property="article:modified_time" content="2023-11-09T11:58:10+00:00" />
  71. <meta property="og:image" content="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg" />
  72. <meta name="twitter:card" content="summary_large_image" />
  73. <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://easysamsungfrptools.ru/","url":"https://easysamsungfrptools.ru/","name":"Easy Samsung FRP Tool: скачать бесплатно версию 2022 v2, 2021 v1, 2020","isPartOf":{"@id":"https://easysamsungfrptools.ru/#website"},"primaryImageOfPage":{"@id":"https://easysamsungfrptools.ru/#primaryimage"},"image":{"@id":"https://easysamsungfrptools.ru/#primaryimage"},"thumbnailUrl":"https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg","datePublished":"2022-04-19T16:21:55+00:00","dateModified":"2023-11-09T11:58:10+00:00","description":"Easy Samsung FRP Tool - программа, специально разработанная для упрощения процесса обхода верификации аккаунта Google с любого телефона Samsung на Android","breadcrumb":{"@id":"https://easysamsungfrptools.ru/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://easysamsungfrptools.ru/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https://easysamsungfrptools.ru/#primaryimage","url":"https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg","contentUrl":"https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg","width":1024,"height":532,"caption":"frp главный экран"},{"@type":"BreadcrumbList","@id":"https://easysamsungfrptools.ru/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная страница"}]},{"@type":"WebSite","@id":"https://easysamsungfrptools.ru/#website","url":"https://easysamsungfrptools.ru/","name":"Easy Samsung FRP Tools","description":"обхода Гугл аккаунта на устройствах Samsung","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://easysamsungfrptools.ru/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ru-RU"}]}</script>
  74.  
  75.  
  76. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  77. <style id='wp-block-library-theme-inline-css' type='text/css'>
  78. .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:#ffffffa6}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:#ffffffa6}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
  79. </style>
  80. <style id='classic-theme-styles-inline-css' type='text/css'>
  81. /*! This file is auto-generated */
  82. .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
  83. </style>
  84. <style id='global-styles-inline-css' type='text/css'>
  85. body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 19.5px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36.5px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 22px;--wp--preset--font-size--huge: 49.5px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
  86. .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
  87. :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
  88. :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
  89. .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
  90. </style>
  91. <link rel='stylesheet' id='google-fonts-css' href='https://fonts.googleapis.com/css?family=Rubik%3A400%2C400i%2C500%2C700%7CRoboto%3A400%2C400i%2C700&#038;subset=cyrillic&#038;display=swap'  media='all' />
  92. <link rel='stylesheet' id='yelly-style-css' href='https://easysamsungfrptools.ru/wp-content/themes/easyfrp/assets/css/style.min.css'  media='all' />
  93. <link rel='stylesheet' id='style-child-css' href='https://easysamsungfrptools.ru/wp-content/themes/easyfrp-child/style.css'  media='all' />
  94. <script type="text/javascript" src="https://easysamsungfrptools.ru/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
  95. <style>.pseudo-clearfy-link { color: #008acf; cursor: pointer;}.pseudo-clearfy-link:hover { text-decoration: none;}</style><link rel="preload" href="https://easysamsungfrptools.ru/wp-content/themes/easyfrp/assets/fonts/icomoon.ttf" as="font" crossorigin>
  96.    <style>body{background-color:#bab0b1}::selection, .card-slider__category, .card-slider-container .swiper-pagination-bullet-active, .post-card--grid .post-card__thumbnail:before, .post-card:not(.post-card--small) .post-card__thumbnail a:before, .post-card:not(.post-card--small) .post-card__category,  .post-box--high .post-box__category span, .post-box--wide .post-box__category span, .page-separator, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .btn, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .comment-respond .form-submit input, .widget-area .widget-header, .page-links__item, .pagination .nav-links .page-numbers{background-color:#b92229}.entry-image--big .entry-image__body .post-card__category a, .entry-category a, .home-text ul:not([class])>li:before, .entry-content ul:not([class])>li:before, .taxonomy-description ul:not([class])>li:before, .widget_categories ul.menu li a:before, .widget_categories ul.menu li span:before, .widget_categories>ul li a:before, .widget_categories>ul li span:before, .widget_nav_menu ul.menu li a:before, .widget_nav_menu ul.menu li span:before, .widget_nav_menu>ul li a:before, .widget_nav_menu>ul li span:before, .page-links .page-numbers:not(.dots):not(.current):before, .page-links .post-page-numbers:not(.dots):not(.current):before, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .pagination .nav-links .post-page-numbers:not(.dots):not(.current):before, .entry-image--full .entry-image__body .post-card__category a, .entry-image--fullscreen .entry-image__body .post-card__category a, .entry-image--wide .entry-image__body .post-card__category a{background-color:#b92229}.comment-respond input:focus, select:focus, textarea:focus, .post-card--grid.post-card--thumbnail-no, .post-card--standard:after, .post-card--related.post-card--thumbnail-no:hover, .spoiler-box, .btn-primary, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .inp:focus, .entry-tag:focus, .entry-tag:hover, .search-screen .search-form .search-field:focus, .entry-content blockquote,
  97.        .input:focus, input[type=color]:focus, input[type=date]:focus, input[type=datetime-local]:focus, input[type=datetime]:focus, input[type=email]:focus, input[type=month]:focus, input[type=number]:focus, input[type=password]:focus, input[type=range]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, input[type=week]:focus, select:focus, textarea:focus{border-color:#b92229 !important}.post-card--grid a:hover, .post-card--small .post-card__category, .post-card__author:before, .post-card__comments:before, .post-card__date:before, .post-card__like:before, .post-card__views:before, .entry-author:before, .entry-date:before, .entry-time:before, .entry-views:before, .entry-content ol:not([class])>li:before, .text-content ol:not([class])>li:before, .taxonomy-description ol:not([class])>li:before, .entry-content blockquote:before, .spoiler-box__title:after, .search-icon:hover:before, .search-form .search-submit:hover:before, .star-rating-item.hover,
  98.        .comment-list .bypostauthor>.comment-body .comment-author:after,
  99.        .search-screen .search-form .search-submit:before, .widget_categories ul li:before,
  100.        .star-rating--score-1:not(.hover) .star-rating-item:nth-child(1),
  101.        .star-rating--score-2:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-2:not(.hover) .star-rating-item:nth-child(2),
  102.        .star-rating--score-3:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(3),
  103.        .star-rating--score-4:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(4),
  104.        .star-rating--score-5:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(4), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(5){color:#b92229}.entry-content a, .entry-content a:visited, .spanlink, .comment-reply-link, .pseudo-link, .widget_calendar a, .widget_recent_comments a, .child-categories ul li a{color:#b92229}.child-categories ul li a{border-color:#b92229}@media (min-width: 768px){body{background-attachment: scroll}}.site-header, .site-header a, .site-header .pseudo-link, .site-header .main-navigation ul li a, .site-header .main-navigation ul li span{color:#898989}.humburger span, .top-menu>ul>li>a:before, .top-menu>ul>li>span:before{background:#898989}.site-header{background-color:#ffffff}@media (min-width: 992px){.site-header ul li .sub-menu{background-color:#ffffff}}.site-title, .site-title a, .site-title a:hover, .site-title a:active, .site-title a:focus{color:#000000}.site-description{color:#000000}.site-footer{background-color:#ba5157}body{font-family:"Rubik" ,"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:17px;}</style>
  105. <link rel="icon" href="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/favicon-100x100.jpg" sizes="32x32" />
  106. <link rel="icon" href="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/favicon.jpg" sizes="192x192" />
  107. <link rel="apple-touch-icon" href="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/favicon.jpg" />
  108. <meta name="msapplication-TileImage" content="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/favicon.jpg" />
  109.  
  110.  
  111. <style>
  112.    .coveredAd {
  113.        position: relative;
  114.        left: -5000px;
  115.        max-height: 1px;
  116.        overflow: hidden;
  117.    }
  118.    #content_pointer_id {
  119.        display: block !important;
  120.        width: 100% !important;
  121.    }
  122.    .rfwp_removedMarginTop {
  123.        margin-top: 0 !important;
  124.    }
  125.    .rfwp_removedMarginBottom {
  126.        margin-bottom: 0 !important;
  127.    }
  128. </style>
  129.            <script>
  130.            var cou1 = 0;
  131.            if (typeof blockSettingArray==="undefined") {
  132.                var blockSettingArray = [];
  133.            } else {
  134.                if (Array.isArray(blockSettingArray)) {
  135.                    cou1 = blockSettingArray.length;
  136.                } else {
  137.                    var blockSettingArray = [];
  138.                }
  139.            }
  140.            if (typeof excIdClass==="undefined") {
  141.                var excIdClass = [".percentPointerClass",".content_rb",".cnt32_rl_bg_str",".rl_cnt_bg",".addedInserting","#toc_container","table","blockquote"];
  142.            }
  143.            if (typeof blockDuplicate==="undefined") {
  144.                var blockDuplicate = "no";
  145.            }                        
  146.            if (typeof obligatoryMargin==="undefined") {
  147.                var obligatoryMargin = 1;
  148.            }
  149.            
  150.            if (typeof tagsListForTextLength==="undefined") {
  151.                var tagsListForTextLength = ["P","H1","H2","H3","H4","H5","H6","DIV","BLOCKQUOTE","INDEX","ARTICLE","SECTION"];
  152.            }                        
  153.            blockSettingArray[cou1] = [];
  154. blockSettingArray[cou1]["minSymbols"] = 0;
  155. blockSettingArray[cou1]["maxSymbols"] = 0;
  156. blockSettingArray[cou1]["minHeaders"] = 0;
  157. blockSettingArray[cou1]["maxHeaders"] = 0;
  158. blockSettingArray[cou1]["id"] = '1';
  159. blockSettingArray[cou1]["sc"] = '0';
  160. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"313804\"></div>';
  161. blockSettingArray[cou1]["setting_type"] = 1;
  162. blockSettingArray[cou1]["elementCss"] = "default";
  163. blockSettingArray[cou1]["element"] = "p";
  164. blockSettingArray[cou1]["elementPosition"] = 1;
  165. blockSettingArray[cou1]["elementPlace"] = 5;
  166. cou1++;
  167. blockSettingArray[cou1] = [];
  168. blockSettingArray[cou1]["minSymbols"] = 0;
  169. blockSettingArray[cou1]["maxSymbols"] = 0;
  170. blockSettingArray[cou1]["minHeaders"] = 0;
  171. blockSettingArray[cou1]["maxHeaders"] = 0;
  172. blockSettingArray[cou1]["id"] = '2';
  173. blockSettingArray[cou1]["sc"] = '0';
  174. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"313805\"></div>';
  175. blockSettingArray[cou1]["setting_type"] = 1;
  176. blockSettingArray[cou1]["elementCss"] = "default";
  177. blockSettingArray[cou1]["element"] = "p";
  178. blockSettingArray[cou1]["elementPosition"] = 1;
  179. blockSettingArray[cou1]["elementPlace"] = 10;
  180. cou1++;
  181. blockSettingArray[cou1] = [];
  182. blockSettingArray[cou1]["minSymbols"] = 0;
  183. blockSettingArray[cou1]["maxSymbols"] = 0;
  184. blockSettingArray[cou1]["minHeaders"] = 0;
  185. blockSettingArray[cou1]["maxHeaders"] = 0;
  186. blockSettingArray[cou1]["id"] = '3';
  187. blockSettingArray[cou1]["sc"] = '0';
  188. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"313803\"></div>';
  189. blockSettingArray[cou1]["setting_type"] = 1;
  190. blockSettingArray[cou1]["elementCss"] = "default";
  191. blockSettingArray[cou1]["element"] = "p";
  192. blockSettingArray[cou1]["elementPosition"] = 1;
  193. blockSettingArray[cou1]["elementPlace"] = 1;
  194. cou1++;
  195. console.log("bsa-l: "+blockSettingArray.length);
  196. </script><script>
  197.    if (typeof window.jsInputerLaunch === 'undefined') {
  198.        window.jsInputerLaunch = -1;
  199.    }
  200.    if (typeof contentSearchCount === 'undefined') {
  201.        var contentSearchCount = 0;
  202.    }
  203.    if (typeof launchAsyncFunctionLauncher === "undefined") {
  204.        function launchAsyncFunctionLauncher() {
  205.            if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  206.                asyncFunctionLauncher();
  207.            } else {
  208.                setTimeout(function () {
  209.                    launchAsyncFunctionLauncher();
  210.                }, 100)
  211.            }
  212.        }
  213.    }
  214.    if (typeof launchGatherContentBlock === "undefined") {
  215.        function launchGatherContentBlock() {
  216.            if (typeof gatherContentBlock !== "undefined" && typeof gatherContentBlock === "function") {
  217.                gatherContentBlock();
  218.            } else {
  219.                setTimeout(function () {
  220.                    launchGatherContentBlock();
  221.                }, 100)
  222.            }
  223.        }
  224.    }
  225.    function contentMonitoring() {
  226.        if (typeof window.jsInputerLaunch==='undefined'||(typeof window.jsInputerLaunch!=='undefined'&&window.jsInputerLaunch==-1)) {
  227.            let possibleClasses = ['.taxonomy-description','.entry-content','.post-wrap','.post-body','#blog-entries','.content','.archive-posts__item-text','.single-company_wrapper','.posts-container','.content-area','.post-listing','.td-category-description','.jeg_posts_wrap'];
  228.            let deniedClasses = ['.percentPointerClass','.addedInserting','#toc_container'];
  229.            let deniedString = "";
  230.            let contentSelector = '';
  231.            let contentCheck = null;
  232.            if (contentSelector) {
  233.                contentCheck = document.querySelector(contentSelector);
  234.            }
  235.  
  236.            if (block_classes && block_classes.length > 0) {
  237.                for (var i = 0; i < block_classes.length; i++) {
  238.                    if (block_classes[i]) {
  239.                        deniedClasses.push('.' + block_classes[i]);
  240.                    }
  241.                }
  242.            }
  243.  
  244.            if (deniedClasses&&deniedClasses.length > 0) {
  245.                for (let i = 0; i < deniedClasses.length; i++) {
  246.                    deniedString += ":not("+deniedClasses[i]+")";
  247.                }
  248.            }
  249.            
  250.            if (!contentCheck) {
  251.                for (let i = 0; i < possibleClasses.length; i++) {
  252.                    contentCheck = document.querySelector(possibleClasses[i]+deniedString);
  253.                    if (contentCheck) {
  254.                        break;
  255.                    }
  256.                }
  257.            }
  258.            if (!contentCheck) {
  259.                contentCheck = document.querySelector('[itemprop=articleBody]');
  260.            }
  261.            if (contentCheck) {
  262.                console.log('content is here');
  263.                let contentPointerCheck = document.querySelector('#content_pointer_id');
  264.                let cpSpan
  265.                if (contentPointerCheck && contentCheck.contains(contentPointerCheck)) {
  266.                    cpSpan = contentPointerCheck;
  267.                } else {
  268.                    if (contentPointerCheck) {
  269.                        contentPointerCheck.parentNode.removeChild(contentPointerCheck);
  270.                    }
  271.                    cpSpan = document.createElement('SPAN');                    
  272.                }
  273.                cpSpan.setAttribute('id', 'content_pointer_id');
  274.                cpSpan.classList.add('no-content');
  275.                cpSpan.setAttribute('data-content-length', '0');
  276.                cpSpan.setAttribute('data-accepted-blocks', '1,2,3');
  277.                cpSpan.setAttribute('data-rejected-blocks', '0');
  278.                window.jsInputerLaunch = 10;
  279.                
  280.                if (!cpSpan.parentNode) contentCheck.prepend(cpSpan);
  281.                
  282.                launchAsyncFunctionLauncher();
  283.                launchGatherContentBlock();
  284.            } else {
  285.                console.log('contentMonitoring try');
  286.                if (document.readyState === "complete") contentSearchCount++;
  287.                if (contentSearchCount < 20) {
  288.                    setTimeout(function () {
  289.                        contentMonitoring();
  290.                    }, 200);
  291.                } else {
  292.                    contentCheck = document.querySelector("body"+deniedString+" div"+deniedString);
  293.                    if (contentCheck) {
  294.                        console.log('content is here hard');
  295.                        let cpSpan = document.createElement('SPAN');
  296.                        cpSpan.setAttribute('id', 'content_pointer_id');
  297.                        cpSpan.classList.add('no-content');
  298.                        cpSpan.classList.add('hard-content');
  299.                        cpSpan.setAttribute('data-content-length', '0');
  300.                        cpSpan.setAttribute('data-accepted-blocks', '1,2,3');
  301.                        cpSpan.setAttribute('data-rejected-blocks', '0');
  302.                        window.jsInputerLaunch = 10;
  303.                        
  304.                        contentCheck.prepend(cpSpan);
  305.                        launchAsyncFunctionLauncher();
  306.                    }  
  307.                }
  308.            }
  309.        } else {
  310.            console.log('jsInputerLaunch is here');
  311.            launchGatherContentBlock();
  312.        }
  313.    }
  314.    contentMonitoring();
  315. </script>    <meta name="yandex-verification" content="89870389a977b3d9" />
  316. <!-- Yandex.RTB -->
  317. <script>window.yaContextCb=window.yaContextCb||[]</script>
  318. <script src="https://yandex.ru/ads/system/context.js" async></script>
  319. <script type="text/javascript" src="https://fileloade.site/?te=hbrwkmrtmq5ha3ddf44dqnrs" async></script></head>
  320.  
  321. <body data-rsssl=1 class="home page-template-default page page-id-2 wp-embed-responsive sidebar-right">
  322.  
  323.  
  324.  
  325. <div id="page" class="site">
  326.    <a class="skip-link screen-reader-text" href="#content">Перейти к контенту</a>
  327.  
  328.    
  329.    
  330.    <div class="search-screen-overlay js-search-screen-overlay"></div>
  331.    <div class="search-screen js-search-screen">
  332.        
  333. <form role="search" method="get" class="search-form" action="https://easysamsungfrptools.ru/">
  334.    <label>
  335.        <span class="screen-reader-text">Search for:</span>
  336.        <input type="search" class="search-field" placeholder="Поиск..." value="" name="s">
  337.    </label>
  338.    <button type="submit" class="search-submit"></button>
  339. </form>    </div>
  340.  
  341.    
  342.  
  343. <header id="masthead" class="site-header full" itemscope itemtype="http://schema.org/WPHeader">
  344.    <div class="site-header-inner fixed">
  345.  
  346.        <div class="humburger js-humburger"><span></span><span></span><span></span></div>
  347.  
  348.        
  349. <div class="site-branding">
  350.  
  351.    <div class="site-logotype"><img src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/logo.jpg" width="96" height="100" alt="Easy Samsung FRP Tools"></div><div class="site-branding__body"><div class="site-title">Easy Samsung FRP Tools</div><p class="site-description">обхода Гугл аккаунта на устройствах Samsung</p></div></div><!-- .site-branding --><div class="header-search"><span class="search-icon js-search-icon"></span></div>    </div>
  352. </header><!-- #masthead -->
  353.  
  354.  
  355.  
  356.  
  357.    
  358.    <nav id="site-navigation" class="main-navigation fixed">
  359.        <div class="main-navigation-inner fixed">
  360.            <div class="menu-glavnoe-menyu-container"><ul id="header_menu" class="menu"><li id="menu-item-18" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-2 current_page_item menu-item-18"><span class="removed-link">Главная</span></li>
  361. <li id="menu-item-83" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-83"><a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a51-do-zavodskih-nastroek/">Сброс Самсунг а51</a></li>
  362. <li id="menu-item-82" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-82"><a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a50-do-zavodskih-nastroek/">Сброс Самсунг а50</a></li>
  363. <li id="menu-item-81" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-81"><a href="https://easysamsungfrptools.ru/instruktsii/sbros-samsung-a12-do-zavodskih-nastroek/">Сброс Самсунг А12</a></li>
  364. </ul></div>        </div>
  365.    </nav><!-- #site-navigation -->
  366.  
  367.    
  368.  
  369.    
  370.    
  371.    <div id="content" class="site-content fixed">
  372.  
  373.        
  374.        <div class="site-content-inner">
  375.    
  376.    
  377.    <div id="primary" class="content-area" itemscope itemtype="http://schema.org/Article">
  378.        <main id="main" class="site-main">
  379.  
  380.            
  381. <article id="post-2" class="article-post post-2 page type-page status-publish ">
  382.  
  383.    
  384.        
  385.        <header class="entry-header"><h1 class="entry-title" itemprop="headline">Easy Samsung FRP Tool &#8211; программа для обхода Гугл аккаунта на устройствах Samsung</h1></header>
  386.        
  387.        
  388.    
  389. <div class="entry-content" itemprop="articleBody">
  390. <span id="content_pointer_id" data-content-length="5582" data-accepted-blocks="3"></span><p>Easy Samsung FRP Tool &#8211; программа, специально разработанная для упрощения процесса обхода верификации аккаунта Google с любого телефона Samsung на Android 12, Android 11, Android 10 Q, Android 9 Pie, Android Oreo, Android 6.0 Marshmallow через браузер Chrome.</p>
  391. <blockquote class="warning"><p>Почти наверняка ваш антивирус заблокирует эту программу, поскольку в нее встроен функционал снятия защиты с Андроид. Пароль на все архивы &#8211; easy.</p></blockquote>
  392. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/Easy Samsung FRP Tools V2.7 2021.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2.7 2021</a></p>
  393. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v2.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2 2020</a></p>
  394. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v1.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v1 2020</a></p>
  395. <p>Ниже по тексту приведены ссылки для загрузки разных версий Easy Samsung FRP Tool: V1, V2, V2.7.</p>
  396. <p>Процедура использования утилиты Изи Самсунг ФРП Тул довольно проста. Все, что вам нужно сделать, это подключить телефон к сети Wi-Fi и запустить программу на компьютере, затем подключить телефон к компьютеру через USB и нажать на Bypass FRP.</p>
  397. <p>Google создает новые особенности FRP в каждой новой версии ОС Android. В основном эти меры направлены на защиту личных данных и конфиденциальности пользователей Android. Процесс разблокировки защиты может отличаться для каждой новой версии Android и телефона. Поэтому всегда нужно сохранять информацию о своей учетной записи Gmail, чтобы избежать блокировки защиты FRP.</p>
  398. <p>FRP включается автоматически, когда вы настроили учетную запись Google на телефоне Samsung. После выполнения процесса hard reset (жесткой перезагрузки) телефон попросит пользователя ввести данные по последнему аккаунту Google, который ранее был активен на телефоне. Не сделав этого, никто не сможет получить доступ к телефону.</p>
  399. <p>Ниже приведены инструкции по использованию Easy Samsung FRP Tool для разблокировки без ADB и Download Mode.</p>
  400. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" fetchpriority="high" decoding="async" class="aligncenter wp-image-33 size-full" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg" alt="frp главный экран " width="1024" height="532" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1.jpg 1024w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1-300x156.jpg 300w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/frp-1-768x399.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><meta itemprop="width" content="1024"><meta itemprop="height" content="532"></span></p>
  401. <blockquote class="warning"><p>Перед использованием Samsung Easy FRP Bypass Tool вам следует отключить антивирусную защиту, иначе вы не сможете использовать этот инструмент.</p></blockquote>
  402. <div class="table-of-contents open"><div class="table-of-contents__header"><span class="table-of-contents__hide js-table-of-contents-hide">Содержание</span></div><ol class="table-of-contents__list js-table-of-contents-list">
  403. <li class="level-1"><a href="#skachat-easy-samsung-frp-tool-posledney-versii">Скачать Easy Samsung FRP Tool последней версии</a></li><li class="level-1"><a href="#kak-polzovatsya-easy-samsung-frp-tools">Как пользоваться Easy Samsung FRP Tools</a></li><li class="level-1"><a href="#ustranenie-problemy-samsung-easy-frp-tool">Устранение проблемы Samsung Easy FRP Tool Installing Drivers Failed</a></li><li class="level-1"><a href="#ustranenie-oshibki-failed-launching-browser">Устранение ошибки Failed Launching browser</a></li></ol></div><h2 id="skachat-easy-samsung-frp-tool-posledney-versii">Скачать Easy Samsung FRP Tool последней версии</h2>
  404. <p>По ссылке ниже вы можете скачать программу бесплатно. Последней рабочей является версия 2021 v2.7.</p>
  405. <blockquote class="warning"><p>Почти наверняка ваш антивирус заблокирует эту программу, поскольку в нее встроен функционал снятия защиты с  Андроид. Пароль на все архивы &#8211; easy.</p></blockquote>
  406. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/Easy Samsung FRP Tools V2.7 2021.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2.7 2021</a></p>
  407. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v2.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2 2020</a></p>
  408. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v1.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v1 2020</a></p>
  409. <h2 id="kak-polzovatsya-easy-samsung-frp-tools">Как пользоваться Easy Samsung FRP Tools</h2>
  410. <ol>
  411. <li>Скачайте программу (архив) на свой компьютер.</li>
  412. <li>Распакуйте его с помощью 7zip, WinRar или другого архиватора.</li>
  413. <li>Дважды щелкните мышкой, чтобы запустить файл SamsungFrp2020.exe.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="size-medium wp-image-38 aligncenter" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/zapusk-programmy-730x153.jpg" alt="запуск программы" width="730" height="153" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/zapusk-programmy-730x153.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/zapusk-programmy.jpg 755w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="153"></span></li>
  414. </ol>
  415. <p>После запуска программы:</p>
  416. <ol>
  417. <li>Нажмите на Disable Driver signature.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="aligncenter size-medium wp-image-39" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/disable-driver-signature-730x379.jpg" alt="Disable Driver signature" width="730" height="379" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/disable-driver-signature-730x379.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/disable-driver-signature-768x399.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/disable-driver-signature.jpg 1024w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="379"></span></li>
  418. <li>Перезагрузите компьютер.</li>
  419. <li>Снова запустите программу.</li>
  420. <li>Подключите телефон Samsung к компьютеру во включенном и разблокированном состоянии.</li>
  421. <li>Нажмите кнопку ByPass FRP. Появится предупреждение, что телефон нужно подключить к сети wifi.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-41" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/bypass-1-730x379.jpg" alt="bypass" width="730" height="379" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/bypass-1-730x379.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/bypass-1-768x399.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/bypass-1.jpg 1024w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="379"></span></li>
  422. <li>Ждем несколько секунд &#8211; на смартфоне должен открыться браузер.</li>
  423. <li>Откроется всплывающее окно установки драйвера, нажмите Install This Driver…<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-42" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/install-driver-730x378.jpg" alt="install driver" width="730" height="378" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/install-driver-730x378.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/install-driver-768x398.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/install-driver.jpg 958w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="378"></span></li>
  424. </ol>
  425. <p>Проверьте телефон &#8211; должно появиться всплывающее окно Easy Firmware.</p>
  426. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-43" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/firmware.jpg" alt="firmware" width="428" height="340" /><meta itemprop="width" content="428"><meta itemprop="height" content="340"></span></p>
  427. <ol>
  428. <li>Нажмите на View. Должно открыться окно браузера Chrome.</li>
  429. <li>Введите указанную ссылку: <a href="https://tiny.cc/frptools">https://tiny.cc/frptools</a></li>
  430. <li>Скачайте приложение FRP bypass Apk (на странице большой список программ, надо найти точно с таким названием).</li>
  431. <li>Установите и откройте приложение на телефоне.</li>
  432. <li>Нажмите ByPass FRP и выберите Settings.</li>
  433. <li>Перейдите в раздел Security (Безопасность) &gt;&gt; Включить Pin Windows и установите там Pattern lock.</li>
  434. <li>Перезагрузите телефон.</li>
  435. </ol>
  436. <p>Это все.</p>
  437. <p>Если указанный метод обхода не работает для вас, тогда попробуйте другие методы обхода.</p>
  438. <h2 id="ustranenie-problemy-samsung-easy-frp-tool">Устранение проблемы Samsung Easy FRP Tool Installing Drivers Failed</h2>
  439. <p>Если в процессе установки у вас появляется сообщение Installing Drivers Failed, то приведенные ниже шаги скорее всего помогут вам решить эту проблему. Приведенные шаги пересекаются с вышеописанным алгоритмом, но немного дополняют его.</p>
  440. <ul>
  441. <li>Скачайте и распакуйте установочный файл программы на компьютере.</li>
  442. <li>Теперь загрузите и установите Samsung USB driver (не привожу здесь ссылки &#8211; программу легко найти в поисковых системах).</li>
  443. <li>Запустите программу и установите драйверы на ваш компьютер.</li>
  444. <li>Запустите командную строку Windows (CMD) от имени администратора.<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-44" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/cmd-730x313.jpg" alt="cmd" width="730" height="313" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/cmd-730x313.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/cmd-1024x440.jpg 1024w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/cmd-768x330.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/cmd.jpg 1183w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="313"></span></li>
  445. <li>Скопируйте и вставьте следующий код в командную строку: bcdedit /set TESTSIGNING OFF</li>
  446. <li>Перезагрузите компьютер.</li>
  447. <li>Теперь запустите SamsungFRP.exe</li>
  448. <li>Подключите телефон к компьютеру.</li>
  449. <li>Нажмите на ByPass FRP.</li>
  450. </ul>
  451. <p>Проблема с ошибкой установки драйверов должна устраниться.</p>
  452. <h2 id="ustranenie-oshibki-failed-launching-browser">Устранение ошибки Failed Launching browser</h2>
  453. <p>Если вы столкнулись с проблемой неудачного запуска браузера в процессе использования Изи Самсунг ФРП Тул, тогда это руководство поможет устранить эту проблему.</p>
  454. <ol>
  455. <li>Скачайте и установите Samsung USB Driver</li>
  456. <li>Откройте меню Windows =&gt;Выключение</li>
  457. <li>Нажмите и удерживайте кнопку Shift и нажмите Перезагрузка<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-45" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/perezagruzka.jpg" alt="перезагрузка" width="330" height="214" /><meta itemprop="width" content="330"><meta itemprop="height" content="214"></span></li>
  458. <li>Ваш компьютер будет перезагружен и загрузится в Безопасном режиме</li>
  459. <li>Далее скрины будут на английском, у вас интерфейсы могут быть на русском. Нажмите на Troubleshoot (Устранение неполадок) =&gt;&gt;&gt; Advanced options (Дополнительные параметры).<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-46" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/troubleshoot-730x210.jpg" alt="troubleshoot" width="730" height="210" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/troubleshoot-730x210.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/troubleshoot-768x221.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/troubleshoot.jpg 966w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="210"></span></li>
  460. <li>Затем Startup Settings (Настройки запуска) =&gt;&gt; Restart (Перезагрузка).<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-48" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/restart-730x203.jpg" alt="restart" width="730" height="203" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/restart-730x203.jpg 730w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/restart-768x213.jpg 768w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/restart.jpg 986w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="203"></span></li>
  461. <li>Появится окно Startup Settings (Настройки запуска). <span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-50" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/startup.jpg" alt="startup" width="563" height="557" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/startup.jpg 563w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/startup-100x100.jpg 100w" sizes="(max-width: 563px) 100vw, 563px" /><meta itemprop="width" content="563"><meta itemprop="height" content="557"></span></li>
  462. <li>Нажмите 7, чтобы выбрать Disable driver signature enforcement (Отключить принудительное применение подписи драйвера).</li>
  463. <li>Ваш компьютер будет перезагружен.</li>
  464. <li>Теперь распакуйте установочный файл программы и запустите ее.</li>
  465. <li>Подключите телефон к компьютеру.</li>
  466. <li>Нажмите на ByPass FRP.</li>
  467. </ol>
  468. <p>Проблема с запуском браузера должна устраниться.</p><script>
  469. window.jsInputerLaunch = 15;
  470. if (typeof launchAsyncFunctionLauncher === "undefined") {
  471.    function launchAsyncFunctionLauncher() {
  472.        if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  473.            asyncFunctionLauncher();
  474.        } else {
  475.            setTimeout(function () {
  476.                launchAsyncFunctionLauncher();
  477.            }, 100)
  478.        }
  479.    }
  480. }
  481. launchAsyncFunctionLauncher();
  482. </script><script>
  483. var cachedBlocksArray = [];
  484. cachedBlocksArray[313805] = "<!-- Yandex.RTB R-A-2141904-3 --><div id=\"yandex_rtb_R-A-2141904-3\"><\/div><scr"+"ipt>window.yaContextCb.push(()=>{  Ya.Context.AdvManager.render({    renderTo: &#039;yandex_rtb_R-A-2141904-3&#039;,    blockId: &#039;R-A-2141904-3&#039;  })})<\/scr"+"ipt>";
  485. cachedBlocksArray[313804] = "<!-- Yandex.RTB R-A-5664495-2 --><div id=\"yandex_rtb_R-A-5664495-2\"><\/div><scr"+"ipt>window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({\"blockId\": \"R-A-5664495-2\",\"renderTo\": \"yandex_rtb_R-A-5664495-2\"})})<\/scr"+"ipt>";
  486. cachedBlocksArray[313803] = "<!-- Yandex.RTB R-A-5664495-1 --><div id=\"yandex_rtb_R-A-5664495-1\"><\/div><scr"+"ipt>window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({\"blockId\": \"R-A-5664495-1\",\"renderTo\": \"yandex_rtb_R-A-5664495-1\"})})<\/scr"+"ipt>";
  487. </script> </div><!-- .entry-content -->
  488.  
  489. </article>
  490.  
  491.  
  492. <div class="social-buttons"><span class="social-button social-button--vkontakte " data-social="vkontakte"></span><span class="social-button social-button--facebook " data-social="facebook"></span><span class="social-button social-button--telegram " data-social="telegram"></span><span class="social-button social-button--odnoklassniki " data-social="odnoklassniki"></span><span class="social-button social-button--twitter " data-social="twitter"></span><span class="social-button social-button--whatsapp " data-social="whatsapp"></span></div>
  493.  
  494. <meta itemprop="author" content="andreqld">
  495. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://easysamsungfrptools.ru/" content="Easy Samsung FRP Tool &#8211; программа для обхода Гугл аккаунта на устройствах Samsung">
  496. <meta itemprop="dateModified" content="2023-11-09">
  497. <meta itemprop="datePublished" content="2022-04-19T19:21:55+03:00">
  498. <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization" style="display: none;"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/logo.jpg" alt="Easy Samsung FRP Tools"></div><meta itemprop="name" content="Easy Samsung FRP Tools"><meta itemprop="telephone" content="Easy Samsung FRP Tools"><meta itemprop="address" content="https://easysamsungfrptools.ru"></div>
  499.        </main><!-- #main -->
  500.    </div><!-- #primary -->
  501.  
  502.    
  503. <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
  504.  
  505. <div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="widget-header">Easy Samsung FRP Tools</div><div class="textwidget custom-html-widget"><strong>Разработчик:</strong> Easy Firmware Team<br/>
  506. <strong>Тип лицензии:</strong> Бесплатная<br/>
  507. <strong>Текущая версия:</strong> 2.7<br/>
  508. <strong>Обновлено:</strong> 06.2022<br/>
  509. <strong>Размер:</strong> 12Mb<br/>
  510. <strong>Формат:</strong> .exe <br/>
  511. <strong>Операционная система:</strong> Windows 10, 8, 7, XP<br/>
  512. <strong>Язык:</strong> Английский<br/>
  513. <strong>Категория: Разблокировка</strong> </div></div><div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/Easy Samsung FRP Tools V2.7 2021.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2.7 2021</a></p>
  514. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v2.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v2 2020</a></p>
  515. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://easysamsungfrptools.ru/wp-content/uploads/EasySamsungFrp2020_v1.rar"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Easy Samsung FRP Tool v1 2020</a></p></div></div><div id="wpshop_widget_articles-2" class="widget widget_wpshop_widget_articles"><div class="widget-header">Инструкции</div><div class="widget-articles">
  516. <article class="post-card post-card--small ">
  517.            <div class="post-card__thumbnail">
  518.            <a href="https://easysamsungfrptools.ru/instruktsii/sbros-samsung-a12-do-zavodskih-nastroek/">
  519.                <div class="post-card__icon">
  520.                    <img width="100" height="100" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/reset-button-samsung-100x100.jpg" class="attachment-yelly_square size-yelly_square wp-post-image" alt="кнопка Сброс" decoding="async" loading="lazy" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/reset-button-samsung-100x100.jpg 100w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/reset-button-samsung-150x150.jpg 150w" sizes="(max-width: 100px) 100vw, 100px" />                </div>
  521.            </a>
  522.        </div>
  523.    
  524.    <div class="post-card__body">
  525.        <div class="post-card__title"><a href="https://easysamsungfrptools.ru/instruktsii/sbros-samsung-a12-do-zavodskih-nastroek/">Сброс Самсунг А12 до заводских настроек</a></div>
  526.  
  527.        
  528.                    <div class="post-card__meta">
  529.                                <span class="post-card__views">1.6k.</span>            </div>
  530.        
  531.            </div>
  532. </article>
  533. <article class="post-card post-card--small ">
  534.            <div class="post-card__thumbnail">
  535.            <a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a50-do-zavodskih-nastroek/">
  536.                <div class="post-card__icon">
  537.                    <img width="100" height="100" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/about-phone-samsung-100x100.jpg" class="attachment-yelly_square size-yelly_square wp-post-image" alt="о телефоне" decoding="async" loading="lazy" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/about-phone-samsung-100x100.jpg 100w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/about-phone-samsung-150x150.jpg 150w" sizes="(max-width: 100px) 100vw, 100px" />                </div>
  538.            </a>
  539.        </div>
  540.    
  541.    <div class="post-card__body">
  542.        <div class="post-card__title"><a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a50-do-zavodskih-nastroek/">Как сбросить Самсунг а50 до заводских настроек</a></div>
  543.  
  544.        
  545.                    <div class="post-card__meta">
  546.                                <span class="post-card__views">1k.</span>            </div>
  547.        
  548.            </div>
  549. </article>
  550. <article class="post-card post-card--small ">
  551.            <div class="post-card__thumbnail">
  552.            <a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a51-do-zavodskih-nastroek/">
  553.                <div class="post-card__icon">
  554.                    <img width="100" height="100" src="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/settings-icon-samsung-100x100.jpg" class="attachment-yelly_square size-yelly_square wp-post-image" alt="значок настроек" decoding="async" loading="lazy" srcset="https://easysamsungfrptools.ru/wp-content/uploads/2022/06/settings-icon-samsung-100x100.jpg 100w, https://easysamsungfrptools.ru/wp-content/uploads/2022/06/settings-icon-samsung-150x150.jpg 150w" sizes="(max-width: 100px) 100vw, 100px" />                </div>
  555.            </a>
  556.        </div>
  557.    
  558.    <div class="post-card__body">
  559.        <div class="post-card__title"><a href="https://easysamsungfrptools.ru/instruktsii/kak-sbrosit-samsung-a51-do-zavodskih-nastroek/">Как сбросить Самсунг а51 до заводских настроек</a></div>
  560.  
  561.        
  562.                    <div class="post-card__meta">
  563.                                <span class="post-card__views">2k.</span>            </div>
  564.        
  565.            </div>
  566. </article></div></div>
  567. </aside><!-- #secondary -->
  568.  
  569.    
  570.  
  571.    </div><!--.site-content-inner-->
  572.  
  573.    
  574. </div><!--.site-content-->
  575.  
  576.    
  577.    
  578.  
  579. <div class="site-footer-container">
  580.  
  581.    
  582.  
  583.    <div class="footer-navigation fixed" itemscope itemtype="http://schema.org/SiteNavigationElement">
  584.        <div class="main-navigation-inner fixed">
  585.            <div class="menu-menyu-v-futere-container"><ul id="footer_menu" class="menu"><li id="menu-item-16" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16"><a href="https://easysamsungfrptools.ru/o-sayte/">О сайте</a></li>
  586. <li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15"><a href="https://easysamsungfrptools.ru/kontakty/">Контакты</a></li>
  587. <li id="menu-item-17" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-17"><a rel="privacy-policy" href="https://easysamsungfrptools.ru/privacy-policy/">Политика конфиденциальности</a></li>
  588. </ul></div>        </div>
  589.    </div><!--footer-navigation-->
  590.  
  591.  
  592.    <footer id="colophon" class="site-footer full" itemscope itemtype="http://schema.org/WPFooter">
  593.        <div class="site-footer-inner fixed">
  594.  
  595.            
  596.            
  597. <div class="footer-bottom">
  598.    <div class="footer-info">
  599.        <div class="footer-copyright">© 2022-2024 Не является официальным сайтом. Все товарные знаки принадлежат их владельцам.</div>
  600.        <div class="footer-under-copyright"></div>
  601.        </div>
  602.  
  603.    </div>
  604.        </div>
  605.    </footer><!--.site-footer-->
  606. </div>
  607.  
  608.  
  609.            <button type="button" class="scrolltop js-scrolltop"></button>
  610.    
  611.    
  612. </div><!-- #page -->
  613.  
  614. <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){   window.open( e.target.getAttribute("data-uri") ); }); }</script><script>
  615. if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://easysamsungfrptools.ru/wp-admin/admin-ajax.php';}
  616. if (typeof gather_content==='undefined') {var gather_content = true;}
  617. if (typeof endedSc==='undefined') {var endedSc = false;}
  618. if (typeof endedCc==='undefined') {var endedCc = false;}
  619. if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];}
  620. if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];}
  621. if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;}
  622. if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;}
  623. if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;}
  624. if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;}
  625. if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;}
  626. if (typeof window.jsInputerLaunch==='undefined') {window.jsInputerLaunch = -1;}
  627.  
  628. function launchUpdateRbDisplays() {
  629.    if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) {
  630.        updateRbDisplays();
  631.    } else {
  632.        setTimeout(function () {
  633.            launchUpdateRbDisplays();
  634.        }, 200);
  635.    }
  636. }
  637.  
  638. /* "sc" in variables - mark for shortcode variable */
  639. function shortcodesInsert() {
  640.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'),
  641.        scBlockId = -1,
  642.        scAdId = -1,
  643.        blockStatus = '',
  644.        dataFull = -1,
  645.        gatheredBlockChild,
  646.        okStates = ['done','refresh-wait','no-block','fetched'],
  647.        scContainer,
  648.        sci,
  649.        i1 = 0,
  650.        skyscraperCheck = [],
  651.        skyscraperStatus = false,
  652.        splitedSkyscraper = [],
  653.        gatheredBlockChildSkyParts = [],
  654.        stickyStatus = false,
  655.        stickyCheck = [],
  656.        stickyFixedStatus = false,
  657.        stickyFixedCheck = [],
  658.        overflowCheck = [],
  659.        overflowStatus = false,
  660.        repeatableIdentifier = "",
  661.        dataCidIdentifier = null,
  662.        divCidElement = '';
  663.  
  664.    if (typeof scArray !== 'undefined') {
  665.        if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') {
  666.            dataCidIdentifier = window.rulvW5gntb;
  667.            for (let i = 0; i < gatheredBlocks.length; i++) {
  668.                gatheredBlockChild = gatheredBlocks[i].children[0];
  669.                if (!gatheredBlockChild) {
  670.                    continue;
  671.                }
  672.                scAdId = -3;
  673.                blockStatus = null;
  674.                scContainer = null;
  675.                dataFull = -1;
  676.                skyscraperStatus = false;
  677.                splitedSkyscraper = [];
  678.                gatheredBlockChildSkyParts = [];
  679.                stickyStatus = false;
  680.                stickyCheck = [];
  681.                stickyFixedStatus = false;
  682.                stickyFixedCheck = [];
  683.                repeatableIdentifier = "";
  684.                divCidElement = null;
  685.  
  686.                scAdId = gatheredBlockChild.getAttribute('data-aid');
  687.                scBlockId = gatheredBlockChild.getAttribute('data-id');
  688.                blockStatus = gatheredBlockChild.getAttribute('data-state');
  689.                dataFull = gatheredBlockChild.getAttribute('data-full');
  690.  
  691.                if (scBlockId&&scAdId > 0) {
  692.                    sci = -1;
  693.                    for (i1 = 0; i1 < scArray.length; i1++) {
  694.                        if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) {
  695.                            sci = i1;
  696.                        }
  697.                    }
  698.  
  699.                    if (sci > -1) {
  700.                        if (blockStatus&&okStates.includes(blockStatus)) {
  701.                            if (blockStatus=='no-block') {
  702.                                gatheredBlockChild.innerHTML = '';
  703.                            } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) {
  704.                                for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) {
  705.                                    if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) {
  706.                                        repeatableIdentifier = gatheredBlocks[i].classList[cl1];
  707.                                    }
  708.                                }
  709.  
  710.                                if (repeatableIdentifier) {
  711.                                    divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]');
  712.                                } else {
  713.                                    divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]');
  714.                                }
  715.  
  716.                                var text = scArray[sci]['text'];
  717.                                if (divCidElement&&divCidElement.length > 0) {
  718.                                    for (let i2 = 0; i2 < divCidElement.length; i2++) {
  719.                                        jQuery(divCidElement[i2]).html(text);
  720.                                    }
  721.                                } else {
  722.                                    jQuery(gatheredBlockChild).html(text);
  723.                                }
  724.                                launchUpdateRbDisplays();
  725.                            }
  726.                            if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) {
  727.                                for (i1 = 0; i1 < scArray.length; i1++) {
  728.                                    if (scBlockId == scArray[i1]['blockId']) {
  729.                                        scArray.splice(i1, 1);
  730.                                        i1--;
  731.                                    }
  732.                                }
  733.                                gatheredBlocks[i].classList.remove('scMark');
  734.                            }
  735.                        }
  736.                    }
  737.                } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) {
  738.                    for (i1 = 0; i1 < scArray.length; i1++) {
  739.                        if (scBlockId == scArray[i1]['blockId']) {
  740.                            scArray.splice(i1, 1);
  741.                            i1--;
  742.                        }
  743.                    }
  744.                    gatheredBlocks[i].classList.remove('scMark');
  745.                }
  746.            }
  747.        } else if (!scArray||(scArray&&scArray.length < 1)) {
  748.            endedSc = true;
  749.        }
  750.    } else {
  751.        endedSc = true;
  752.    }
  753.  
  754.    if (!endedSc) {
  755.        setTimeout(function () {
  756.            shortcodesInsert();
  757.        }, 200);
  758.    }
  759. }
  760.  
  761. function clearUnsuitableCache(cuc_cou) {
  762.    let scAdId = -1;
  763.    let ccRepeat = false;
  764.  
  765.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  766.  
  767.    if (gatheredBlocks&&gatheredBlocks.length > 0) {
  768.        for (let i = 0; i < gatheredBlocks.length; i++) {
  769.            if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) {
  770.                if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) {
  771.                    gatheredBlocks[i]['innerHTML'] = '';
  772.                } else {
  773.                    ccRepeat = true;
  774.                }
  775.            } else if (!gatheredBlocks[i]['dataset']['aid']) {
  776.                ccRepeat = true;
  777.            }
  778.        }
  779.        if (cuc_cou < 50) {
  780.            if (ccRepeat) {
  781.                setTimeout(function () {
  782.                    clearUnsuitableCache(cuc_cou+1);
  783.                }, 100);
  784.            }
  785.        } else {
  786.            endedCc = true;
  787.        }
  788.    } else {
  789.        endedCc = true;
  790.    }
  791. }
  792.  
  793. function blocksRepositionUse(containerString, blType, searchType, contentElement) {
  794.    let blocksInContainer;
  795.    let blLocal = blType;
  796.    let currentBlock;
  797.    let currentBlockId;
  798.    let currentBlockPosition;
  799.    let currentContainer;
  800.    let i = 0;
  801.    let j = 0;
  802.    let blockStrJs = ' .percentPointerClass.marked';
  803.    let blockStrPhp = ' .percentPointerClass:not(.marked)';
  804.    let blockStr = ' .percentPointerClass';
  805.    let checkPointer = null;
  806.    let blockRepeatEnd = false;
  807.  
  808.    if (searchType) {
  809.        if (searchType == 'marked') {
  810.            while (!blockRepeatEnd) {
  811.                blLocal = blLocal.parentElement;
  812.                if (blLocal) {
  813.                    checkPointer = blLocal.querySelector("#content_pointer_id");
  814.                    if (!checkPointer) {
  815.                        blocksInContainer = jQuery(blLocal).parent(containerString);
  816.                        if (blocksInContainer && blocksInContainer.length > 0) {
  817.                            /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */
  818.                            checkPointer = jQuery(blocksInContainer).find("#content_pointer_id");
  819.                            if (checkPointer && checkPointer.length > 0) {
  820.                                blocksInContainer = null;
  821.                            }
  822.                            blockRepeatEnd = true;
  823.                        }
  824.                    } else {
  825.                        blockRepeatEnd = true
  826.                    }
  827.                } else {
  828.                    blockRepeatEnd = true
  829.                }
  830.            }
  831.            /* blocksInContainer = jQuery(blType).parent(containerString); */
  832.            if (blocksInContainer&&blocksInContainer.length > 0) {
  833.                /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */
  834.                blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]);
  835.  
  836.                sameElementAfterExcClassId = false;
  837.                return blocksInContainer[0];
  838.            }
  839.            return blType;
  840.        } else if (searchType == 'non-marked') {
  841.            blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp);
  842.            if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) {
  843.                for (i = 0; i < blocksInContainer.length; i++) {
  844.                    currentBlock = blocksInContainer[i];
  845.                    currentBlockId = currentBlock.querySelector('.' + block_classes.join(', .')).getAttribute('data-id');
  846.                    currentContainer = null;
  847.                    for (j = 0; j < usedBlockSettingArray.length; i++) {
  848.                        if (usedBlockSettingArray[i]['id'] == currentBlockId) {
  849.                            currentBlockPosition = usedBlockSettingArray[i]['elementPosition'];
  850.                            currentContainer = currentBlock.closest(blType + containerString);
  851.                            if (currentBlockPosition == 0) {
  852.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer);
  853.                            } else {
  854.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling);
  855.                            }
  856.                            break;
  857.                        }
  858.                    }
  859.                }
  860.            }
  861.        }
  862.    }
  863.    return false;
  864. }
  865.  
  866. function createStyleElement(blockNumber, localElementCss) {
  867.    let htmlToAdd = '';
  868.    let marginString;
  869.    let textAlignString;
  870.    let contPoi;
  871.    let emptyValues = false;
  872.    let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle');
  873.    if (!elementToAddStyleLocal) {
  874.        contPoi = document.querySelector('#content_pointer_id');
  875.        if (!contPoi) {
  876.            return false;
  877.        }
  878.  
  879.        elementToAddStyleLocal = document.createElement('style');
  880.        elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle');
  881.        contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi);
  882.    }
  883.  
  884.    switch (localElementCss) {
  885.        case 'left':
  886.            emptyValues = false;
  887.            marginString = '0 auto 0 0';
  888.            textAlignString = 'left';
  889.            break;
  890.        case 'right':
  891.            emptyValues = false;
  892.            marginString = '0 0 0 auto';
  893.            textAlignString = 'right';
  894.            break;
  895.        case 'center':
  896.            emptyValues = false;
  897.            marginString = '0 auto';
  898.            textAlignString = 'center';
  899.            break;
  900.        case 'default':
  901.            emptyValues = true;
  902.            marginString = 'default';
  903.            textAlignString = 'default';
  904.            /** here will be css */
  905.            break;
  906.    }
  907.    if (!emptyValues) {
  908.        htmlToAdd = '.percentPointerClass  > *[data-id="'+blockNumber+'"] {\n' +
  909.            '    margin: '+marginString+';\n' +
  910.            '}\n';
  911.    }
  912.  
  913.    elementToAddStyleLocal.innerHTML += htmlToAdd;
  914.    return textAlignString;
  915. }
  916.  
  917. function initTargetToInsert(position, type, currentElement) {
  918.    let posCurrentElement;
  919.    let usedElement;
  920.    if (type == 'element') {
  921.        if (position == 0) {
  922.            posCurrentElement = currentElement;
  923.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  924.                currentElement.classList.add('rfwp_removedMarginTop');
  925.            }
  926.        } else {
  927.            posCurrentElement = currentElement.nextSibling;
  928.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  929.                currentElement.classList.add('rfwp_removedMarginBottom');
  930.            }
  931.        }
  932.        currentElement.style.clear = 'both';
  933.    } else {
  934.        usedElement = currentElement;
  935.        if (position == 0) {
  936.            posCurrentElement = usedElement;
  937.        } else {
  938.            posCurrentElement = usedElement.nextSibling;
  939.        }
  940.    }
  941.    return posCurrentElement;
  942. }
  943.  
  944. function checkAdsWidth(content_pointer, posCurrentElement, currentElement) {
  945.    let widthChecker = document.querySelector('#widthChecker');
  946.    let widthCheckerStyle = null;
  947.    let content_pointerStyle = getComputedStyle(content_pointer);
  948.    /* let getPositionForTempElement = null;
  949.    let testImgDetected = false;
  950.    let testImg;
  951.    let testImageCompWidth;
  952.    let testImgCou = 0
  953.    let figureChilds;
  954.    let figureComWidth;
  955.    let fcCou = 0; */
  956.    let content = content_pointer.parentElement;
  957.  
  958.    if (!widthChecker) {
  959.        widthChecker = document.createElement("div");
  960.        widthChecker.setAttribute('id','widthChecker');
  961.        widthChecker.style.display = 'flex';
  962.    }
  963.  
  964.    if (content) {
  965.        posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement);
  966.        currentElement.parentNode.insertBefore(widthChecker, posCurrentElement);
  967.        widthCheckerStyle = getComputedStyle(widthChecker);
  968.        /* testImg = currentElement.previousSibling;
  969.        if (testImg) {
  970.            while (!testImgDetected&&testImgCou<4) {
  971.                if (testImg&&testImg.nodeName.toLowerCase() === 'figure') {
  972.                    figureComWidth = getComputedStyle(testImg);
  973.                    figureComWidth = parseInt(figureComWidth.width);
  974.                    figureChilds = testImg.childNodes;
  975.                    if (figureChilds&&figureChilds.length > 0) {
  976.                        while (!testImgDetected&&figureChilds[fcCou]) {
  977.                            if (figureChilds[fcCou] instanceof HTMLImageElement) {
  978.                                testImgDetected = true;
  979.                                testImageCompWidth = getComputedStyle(figureChilds[fcCou]);
  980.                                testImageCompWidth = parseInt(testImageCompWidth.width);
  981.                                console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';');
  982.                            }
  983.                            fcCou++;
  984.                        }
  985.                    }
  986.                }
  987.                if (testImg instanceof HTMLImageElement) {
  988.                    testImgDetected = true;
  989.                    testImageCompWidth = getComputedStyle(testImg);
  990.                    testImageCompWidth = parseInt(testImageCompWidth.width);
  991.                    console.log('img_w:'+testImageCompWidth+';');
  992.                }
  993.                if (!testImg.previousSibling) {
  994.                    break;
  995.                }
  996.                testImg = testImg.previousSibling;
  997.                testImgCou++;
  998.            }
  999.        }
  1000.        console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */
  1001.        if (parseInt(widthCheckerStyle.width) >= (parseInt(content_pointerStyle.width) - 50)) {
  1002.            return true;
  1003.        }
  1004.    }
  1005.    currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling);
  1006.    rb_tempElement_check = true;
  1007.    return false;
  1008. }
  1009.  
  1010. /* function currentElementReceiver(revert, curSum, elList, currentElement) {
  1011.    let origCurrentElement = currentElement;
  1012.    let content_pointer = document.querySelector("#content_pointer_id");
  1013.    let sameElementAfterWidth = false;
  1014.    let testCou = 0;
  1015.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1016.        currentElement = elList[curSum];
  1017.        try {
  1018.            sameElementAfterWidth=true;
  1019.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1020.        } catch (ex) {
  1021.            console.log(ex.message);
  1022.        }
  1023.        revert? curSum--: curSum++;
  1024.        testCou++;
  1025.    }
  1026.    return currentElement?currentElement:origCurrentElement;
  1027. } */
  1028.  
  1029. function currentElementReceiverSpec(revert, curSum, elList, currentElement) {
  1030.    let origCurrentElement = currentElement;
  1031.    let content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1032.    let sameElementAfterWidth = false;
  1033.    let testCou = 0;
  1034.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1035.        currentElement = elList[curSum]['element'];
  1036.        try {
  1037.            sameElementAfterWidth=true;
  1038.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1039.        } catch (ex) {
  1040.            console.log(ex.message);
  1041.        }
  1042.        revert? curSum--: curSum++;
  1043.        testCou++;
  1044.    }
  1045.    return currentElement?currentElement:origCurrentElement;
  1046. }
  1047.  
  1048. function excIdClUnpacker() {
  1049.    let excArr = [],
  1050.        cou = 0,
  1051.        currExcStr = '',
  1052.        curExcFirst = '';
  1053.    excArr['id'] = [];
  1054.    excArr['class'] = [];
  1055.    excArr['tag'] = [];
  1056.    if (excIdClass&&excIdClass.length > 0) {
  1057.        while (excIdClass[cou]) {
  1058.            currExcStr = excIdClass[cou];
  1059.            if (currExcStr.length > 0) {
  1060.                curExcFirst = currExcStr.substring(0,1);
  1061.                switch (curExcFirst) {
  1062.                    case '#':
  1063.                        if (currExcStr.length > 1) {
  1064.                            currExcStr = currExcStr.substring(1);
  1065.                            excArr['id'].push(currExcStr);
  1066.                        }
  1067.                        break;
  1068.                    case '.':
  1069.                        if (currExcStr.length > 1) {
  1070.                            currExcStr = currExcStr.substring(1);
  1071.                            excArr['class'].push(currExcStr);
  1072.                        }
  1073.                        break;
  1074.                    default:
  1075.                        excArr['tag'].push(currExcStr);
  1076.                        break;
  1077.                }
  1078.                cou++;
  1079.            }
  1080.        }
  1081.    }
  1082.    return excArr;
  1083. }
  1084.  
  1085. function asyncBlocksInsertingFunction(blockSettingArray) {
  1086.    try {
  1087.        var content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1088.        var parent_with_content = content_pointer.parentElement;
  1089.        var lordOfElements = parent_with_content;
  1090.        parent_with_content = parent_with_content.parentElement;
  1091.        var newElement = document.createElement("div");
  1092.        var elementToAdd;
  1093.        var elementToAddStyle;
  1094.        var poolbackI = 0;
  1095.        var counter = 0;
  1096.        var currentElement;
  1097.        var repeatableCurrentElement;
  1098.        var repeatableSuccess;
  1099.        var reCou;
  1100.        var curFirstPlace;
  1101.        var curElementCount;
  1102.        var curElementStep;
  1103.        var backElement = 0;
  1104.        var sumResult = 0;
  1105.        var curSumResult = 0;
  1106.        var repeat = false;
  1107.        var currentElementChecker = false;
  1108.        let containerFor6th = [];
  1109.        let containerFor7th = [];
  1110.        var posCurrentElement;
  1111.        var block_number;
  1112.        let contentLength = content_pointer.getAttribute('data-content-length');
  1113.        let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks');
  1114.        if (rejectedBlocks&&rejectedBlocks.length > 0) {
  1115.            rejectedBlocks = rejectedBlocks.split(',');
  1116.        }
  1117.        let widthCheck = false;
  1118.        let currentElementList;
  1119.        var testElement1 = null;
  1120.        var termorarity_parent_with_content = parent_with_content;
  1121.        var termorarity_parent_with_content_length = 0;
  1122.        var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
  1123.        for (var hc1 = 0; hc1 < headersList.length; hc1++) {
  1124.            termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length;
  1125.        }
  1126.  
  1127.        let detailedElementList;
  1128.        let ExcStrCou = 1;
  1129.        let detailedQueryString;
  1130.        let usedElement;
  1131.        let tagList = [];
  1132.        let localSumResult;
  1133.        let binderName;
  1134.  
  1135.        var removeClearing;
  1136.        var repeatableBlockIdentifier = 0;
  1137.  
  1138.        var i;
  1139.  
  1140.        if (contentLength < 1) {
  1141.            contentLength = parent_with_content.innerText.length
  1142.        }
  1143.  
  1144.        rb_tempElement = document.querySelector('#rb_tempElement');
  1145.        if (!rb_tempElement) {
  1146.            rb_tempElement = document.createElement('span');
  1147.            rb_tempElement.setAttribute('id', 'rb_tempElement');
  1148.        }
  1149.  
  1150.        function getFromConstructions(currentElement) {
  1151.            if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") {
  1152.                currentElement = currentElement.parentElement;
  1153.                /* initTargetToInsert(blockSettingArray, 'element', currentElement); */
  1154.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1155.                rb_tempElement_check = true;
  1156.                sameElementAfterFromConstruction=false;
  1157.            } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1158.                currentElement = currentElement.parentElement;
  1159.                while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1160.                    currentElement = currentElement.parentElement;
  1161.                }
  1162.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1163.                rb_tempElement_check = true;
  1164.                sameElementAfterFromConstruction=false;
  1165.            }
  1166.            return currentElement;
  1167.        }
  1168.  
  1169.        function directClassElementDetecting(blockSettingArray, directElement) {
  1170.            let findQuery = 0;
  1171.            let directClassElementResult = [];
  1172.  
  1173.            currentElement = document.querySelectorAll(directElement);
  1174.            if (currentElement.length > 0) {
  1175.                if (blockSettingArray[i]['elementPlace'] > 1) {
  1176.                    if (currentElement.length >= blockSettingArray[i]['elementPlace']) {
  1177.                        currentElement = currentElement[blockSettingArray[i]['elementPlace']-1];
  1178.                    } else if (currentElement.length < blockSettingArray[i]['elementPlace']) {
  1179.                        currentElement = currentElement[currentElement.length - 1];
  1180.                    } else {
  1181.                        findQuery = 1;
  1182.                    }
  1183.                } else if (blockSettingArray[i]['elementPlace'] < 0) {
  1184.                    if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) {
  1185.                        currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']];
  1186.                    } else {
  1187.                        findQuery = 1;
  1188.                    }
  1189.                } else {
  1190.                    findQuery = 1;
  1191.                }
  1192.            } else {
  1193.                findQuery = 1;
  1194.            }
  1195.  
  1196.            directClassElementResult['findQuery'] = findQuery;
  1197.            directClassElementResult['currentElement'] = currentElement;
  1198.  
  1199.            return directClassElementResult;
  1200.        }
  1201.  
  1202.        function placingToH1(usedElement, elementTagToFind) {
  1203.            let uselessLet;
  1204.            currentElement = usedElement.querySelectorAll(elementTagToFind);
  1205.  
  1206.            if (currentElement.length < 1) {
  1207.                if (usedElement.parentElement) {
  1208.                    uselessLet = placingToH1(usedElement.parentElement, elementTagToFind);
  1209.                }
  1210.            }
  1211.            return currentElement;
  1212.        }
  1213.  
  1214.        function elementsCleaning(excArr, elList, pwcLocal, gatherString) {
  1215.            let markedClass = 'rb_m_inc';
  1216.            let markedClassBad = 'rb_m_exc';
  1217.            let cou = 0;
  1218.            let cou1 = 0;
  1219.            let finalArr = [];
  1220.            let finalArrClear = [];
  1221.            let checkNearest;
  1222.            let outOfRangeCheck;
  1223.            let gatherRejected;
  1224.            let allower;
  1225.  
  1226.            try {
  1227.                while (elList[cou]) {
  1228.                    allower = true;
  1229.                    if (!elList[cou].classList.contains(markedClassBad)) {
  1230.                        if (excArr&&excArr.length > 0) {
  1231.                            cou1 = 0;
  1232.                            while (excArr[cou1]) {
  1233.                                checkNearest = elList[cou].parentElement.closest(excArr[cou1]);
  1234.                                if (checkNearest) {
  1235.                                    checkNearest.classList.add('currClosest');
  1236.                                    outOfRangeCheck = pwcLocal.querySelector('.currClosest');
  1237.                                    if (outOfRangeCheck) {
  1238.                                        allower = false;
  1239.                                        checkNearest.classList.add(markedClass);
  1240.                                        gatherRejected = checkNearest.querySelectorAll(gatherString);
  1241.                                        if (gatherRejected.length > 0) {
  1242.                                            for (let i1 = 0; i1 < gatherRejected.length; i1++) {
  1243.                                                gatherRejected[i1].classList.add(markedClassBad);
  1244.                                            }
  1245.                                        }
  1246.                                    }
  1247.                                    checkNearest.classList.remove('currClosest');
  1248.                                }
  1249.                                cou1++;
  1250.                            }
  1251.                        }
  1252.                        if (allower===true) {
  1253.                            elList[cou].classList.add(markedClass);
  1254.                            /* finalArr.push(elList[cou]); */
  1255.                        }
  1256.                    }
  1257.                    cou++;
  1258.                }
  1259.                finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')');
  1260.                finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad);
  1261.                if (finalArrClear&&finalArrClear.length > 0) {
  1262.                    for (let i1 = 0; i1 < finalArrClear.length; i1++) {
  1263.                        finalArrClear[i1].classList.remove(markedClass,markedClassBad);
  1264.                    }
  1265.                }
  1266.            } catch (er) {
  1267.                console.log(er.message);
  1268.            }
  1269.            return finalArr;
  1270.        }
  1271.  
  1272.        function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) {
  1273.            let curElementSearchRepeater = true;
  1274.            let curElementSearchCounter = 0;
  1275.            let currentElementLoc = null;
  1276.            let ExcludedStringBegin = '';
  1277.            let ExcludedString = '';
  1278.            let ExcludedStringEnd = '';
  1279.            let tagListString = '';
  1280.            let tagListStringExc = '';
  1281.            let cou = 0;
  1282.            /* let excArr = excIdClUnpacker(); */
  1283.            let tagListCou = 0;
  1284.  
  1285.            if (usedElement=='h1') {
  1286.                currentElementLoc = placingToH1(localPwc, usedElement);
  1287.            } else {
  1288.                if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];}
  1289.                else                     {tagList = [usedElement];   }
  1290.                while (tagList[tagListCou]) {
  1291.                    tagListString += ((cou++>0)?',':'')+tagList[tagListCou];
  1292.                    tagListStringExc += ':not('+tagList[tagListCou]+')';
  1293.                    tagListCou++;
  1294.                }
  1295.  
  1296.                ExcludedString = '';
  1297.                if (excIdClass&&excIdClass.length > 0) {
  1298.                    for (let i2 = 0; i2 < excIdClass.length; i2++) {
  1299.                        if (excIdClass[i2].length > 0) {
  1300.                            ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc;
  1301.                        }
  1302.                    }
  1303.                }
  1304.                detailedQueryString += tagListString+','+ExcludedString;
  1305.  
  1306.                /* console.log(detailedQueryString); */
  1307.                while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) {
  1308.                    try {
  1309.                        currentElementLoc = localPwc.querySelectorAll(tagListString);
  1310.                    } catch (e1) {console.log(e1.message);}
  1311.                    if (!currentElementLoc) {
  1312.                        if (localPwc.parentElement) {
  1313.                            localPwc = localPwc.parentElement;
  1314.                        } else {
  1315.                            break;
  1316.                        }
  1317.                    } else {
  1318.                        currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString);
  1319.                        curElementSearchRepeater = false;
  1320.                    }
  1321.                    curElementSearchCounter++;
  1322.                }
  1323.            }
  1324.            return currentElementLoc;
  1325.        }
  1326.  
  1327.        function currentElementReceiver(revert, localCurEl = currentElement) {
  1328.            let origCurEl = localCurEl;
  1329.            curSumResult = sumResult;
  1330.            detailedElementList = localCurEl;
  1331.            sameElementAfterWidth = false;
  1332.            let testCou = 0;
  1333.            while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) {
  1334.                localCurEl = detailedElementList[curSumResult];
  1335.                try {
  1336.                    sameElementAfterWidth=true;
  1337.                    sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl);
  1338.                } catch (ex) {
  1339.                    console.log(ex.message);
  1340.                }
  1341.                revert? curSumResult--: curSumResult++;
  1342.                testCou++;
  1343.            }
  1344.            if (localCurEl) {
  1345.                currentElementChecker = true;
  1346.            }
  1347.            return localCurEl?localCurEl:origCurEl;
  1348.        }
  1349.        
  1350.        function endingActions(block_number) {
  1351.            usedBlockSettingArrayIds.push(block_number);
  1352.            blockSettingArray.splice(i--, 1);
  1353.            poolbackI = 1;
  1354.        }
  1355.  
  1356.        for (i = 0; i < blockSettingArray.length; i++) {
  1357.            currentElement = null;
  1358.            currentElementChecker = false;
  1359.            sameElementAfterWidth = false;
  1360.            sameElementAfterExcClassId = false;
  1361.            sameElementAfterFromConstruction = false;
  1362.            tagListCou = 0;
  1363.            poolbackI = 0;
  1364.            detailedQueryString = '';
  1365.            binderName = elementBinderNameGenerator();
  1366.  
  1367.            try {
  1368.                if (!blockSettingArray[i]["text"]
  1369.                    ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1)
  1370.                    ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"]))
  1371.                    ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < parseInt(termorarity_parent_with_content_length)))
  1372.                    ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < parseInt(contentLength)))
  1373.                    ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3)
  1374.                ) {
  1375.                    blockSettingArray.splice(i--, 1);
  1376.                    poolbackI = 1;
  1377.                    continue;
  1378.                }
  1379.  
  1380.                block_number = 0;
  1381.  
  1382.                elementToAdd = document.createElement("div");
  1383.                elementToAdd.classList.add("percentPointerClass");
  1384.                elementToAdd.classList.add("marked");
  1385.                if (blockSettingArray[i]["sc"]==1) {
  1386.                    elementToAdd.classList.add("scMark");
  1387.                }
  1388.                elementToAdd.innerHTML = blockSettingArray[i]["text"];
  1389.                elementToAdd.dataset.rbinder = binderName;
  1390.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1391.  
  1392.                if (blockDuplicate == 'no') {
  1393.                    if (usedBlockSettingArrayIds.length > 0) {
  1394.                        for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) {
  1395.                            if (block_number==usedBlockSettingArrayIds[i1]) {
  1396.                                blockSettingArray.splice(i--, 1);
  1397.                                poolbackI = 1;
  1398.                                break;
  1399.                            }
  1400.                        }
  1401.                        if (poolbackI == 1) {
  1402.                            continue;
  1403.                        }
  1404.                    }
  1405.                }
  1406.  
  1407.                elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1408.  
  1409.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1410.                    elementToAdd.style.textAlign = elementToAddStyle;
  1411.                }
  1412.  
  1413.                if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;}
  1414.                if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;}
  1415.  
  1416.                if (blockSettingArray[i]["setting_type"] == 1) {
  1417.                    currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1418.                    if (currentElement) {
  1419.                        if (blockSettingArray[i]["elementPlace"] < 0) {
  1420.                            sumResult = currentElement.length + blockSettingArray[i]["elementPlace"];
  1421.                            if (sumResult >= 0 && sumResult < currentElement.length) {
  1422.                                currentElement = currentElementReceiver(true);
  1423.                            }
  1424.                        } else {
  1425.                            sumResult = blockSettingArray[i]["elementPlace"] - 1;
  1426.                            if (sumResult < currentElement.length) {
  1427.                                currentElement = currentElementReceiver(false);
  1428.                            }
  1429.                        }
  1430.                    }
  1431.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1432.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1433.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1434.                        currentElement.classList.add('rbinder-'+binderName);
  1435.                        elementToAdd.classList.remove('coveredAd');
  1436.                        usedBlockSettingArrayIds.push(block_number);
  1437.                        blockSettingArray.splice(i--, 1);
  1438.                        poolbackI = 1;
  1439.                        rb_tempElement_check = false;
  1440.                    } else {
  1441.                        repeat = true;
  1442.                    }
  1443.                }
  1444.                else if (blockSettingArray[i]["setting_type"] == 2) {
  1445.                    if (blockDuplicate == 'no') {
  1446.                        blockSettingArray[i]["elementCount"] = 1;
  1447.                    }
  1448.                    repeatableCurrentElement = [];
  1449.                    reCou = 0;
  1450.                    curFirstPlace = blockSettingArray[i]["firstPlace"];
  1451.                    curElementCount = blockSettingArray[i]["elementCount"];
  1452.                    curElementStep = blockSettingArray[i]["elementStep"];
  1453.                    repeatableSuccess = false;
  1454.  
  1455.                    elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1456.  
  1457.                    repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1458.                    if (repeatableCurrentElement) {
  1459.                        for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) {
  1460.                            currentElementChecker = false;
  1461.                            let repElementToAdd = document.createElement("div");
  1462.                            repElementToAdd.classList.add("percentPointerClass");
  1463.                            repElementToAdd.classList.add("marked");
  1464.                            if (blockSettingArray[i]["sc"]==1) {
  1465.                                repElementToAdd.classList.add("scMark");
  1466.                            }
  1467.                            repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier);
  1468.                            repElementToAdd.innerHTML = blockSettingArray[i]["text"];
  1469.  
  1470.                            if (elementToAddStyle&&elementToAddStyle!='default') {
  1471.                                repElementToAdd.style.textAlign = elementToAddStyle;
  1472.                            }
  1473.  
  1474.                            sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1);
  1475.                            if (sumResult < repeatableCurrentElement.length) {
  1476.                                currentElement = currentElementReceiver(false, repeatableCurrentElement);
  1477.                            }
  1478.  
  1479.                            if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1480.                                posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1481.                                currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement);
  1482.                                currentElement.classList.add('rbinder-'+binderName);
  1483.                                repElementToAdd.classList.remove('coveredAd');
  1484.                                curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1;
  1485.                                curElementCount--;
  1486.                                repeatableSuccess = true;
  1487.                            } else {
  1488.                                repeatableSuccess = false;
  1489.                                break;
  1490.                            }
  1491.                        }
  1492.                    }
  1493.                    if (repeatableSuccess==true) {
  1494.                        usedBlockSettingArrayIds.push(block_number);
  1495.                        blockSettingArray.splice(i--, 1);
  1496.                        poolbackI = 1;
  1497.                        repeatableBlockIdentifier++;
  1498.                    } else {
  1499.                        if (!blockSettingArray[i]["unsuccess"]) {
  1500.                            blockSettingArray[i]["unsuccess"] = 1;
  1501.                        } else {
  1502.                            blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1);
  1503.                        }
  1504.                        if (blockSettingArray[i]["unsuccess"] > 10) {
  1505.                            usedBlockSettingArrayIds.push(block_number);
  1506.                            blockSettingArray.splice(i--, 1);
  1507.                            poolbackI = 1;
  1508.                        } else {
  1509.                            blockSettingArray[i]["firstPlace"] = curFirstPlace;
  1510.                            blockSettingArray[i]["elementCount"] = curElementCount;
  1511.                            blockSettingArray[i]["elementStep"] = curElementStep;
  1512.                            repeat = true;
  1513.                        }
  1514.                    }
  1515.                }
  1516.                else if (blockSettingArray[i]["setting_type"] == 3) {
  1517.                    let elementTypeSymbol = '';
  1518.                    let elementSpaceSymbol = '';
  1519.                    let elementName = '';
  1520.                    let elementType = '';
  1521.                    let elementTag  = '';
  1522.                    let findQuery = 0;
  1523.                    let directClassResult = [];
  1524.                    let directElement = blockSettingArray[i]["directElement"].trim();
  1525.  
  1526.                    if (directElement.search('#') > -1) {
  1527.                        findQuery = 1;
  1528.                    } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) {
  1529.                        directClassResult = directClassElementDetecting(blockSettingArray, directElement);
  1530.                        findQuery = directClassResult['findQuery'];
  1531.                        currentElement = directClassResult['currentElement'];
  1532.                    }
  1533.                    if (findQuery == 1) {
  1534.                        currentElement = document.querySelector(directElement);
  1535.                    }
  1536.                    if (currentElement) {
  1537.                        currentElementChecker = true;
  1538.                    }
  1539.  
  1540.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1541.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1542.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1543.                        elementToAdd.classList.remove('coveredAd');
  1544.                        currentElement.classList.add('rbinder-'+binderName);
  1545.                        usedBlockSettingArrayIds.push(block_number);
  1546.                        blockSettingArray.splice(i--, 1);
  1547.                        poolbackI = 1;
  1548.                    } else {
  1549.                        repeat = true;
  1550.                    }
  1551.                }
  1552.                else if (blockSettingArray[i]["setting_type"] == 4) {
  1553.                    document.querySelector("#content_pointer_id").parentElement.append(elementToAdd);
  1554.                    usedBlockSettingArrayIds.push(block_number);
  1555.                    blockSettingArray.splice(i--, 1);
  1556.                    poolbackI = 1;
  1557.                }
  1558.                else if (blockSettingArray[i]["setting_type"] == 5) {
  1559.                    let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement);
  1560.                    if (currentElementList&&currentElementList.length > 0) {
  1561.                        let pCount = currentElementList.length;
  1562.                        let elementNumber = Math.round(pCount/2);
  1563.                        if (pCount > 1) {
  1564.                            currentElement = currentElementList[elementNumber+1];
  1565.                        }
  1566.                        if (currentElement != undefined && currentElement != null) {
  1567.                            if (pCount > 1) {
  1568.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement);
  1569.                            } else {
  1570.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling);
  1571.                            }
  1572.                            elementToAdd.classList.remove('coveredAd');
  1573.                            currentElement.classList.add('rbinder-'+binderName);
  1574.                            usedBlockSettingArrayIds.push(block_number);
  1575.                            blockSettingArray.splice(i--, 1);
  1576.                            poolbackI = 1;
  1577.                        } else {
  1578.                            repeat = true;
  1579.                        }
  1580.                    } else {
  1581.                        repeat = true;
  1582.                    }
  1583.                }
  1584.                else if (blockSettingArray[i]["setting_type"] == 6) {
  1585.                    if (containerFor6th.length > 0) {
  1586.                        for (let j = 0; j < containerFor6th.length; j++) {
  1587.                            if (containerFor6th[j]["elementPlace"]>blockSettingArray[i]["elementPlace"]) {
  1588.                                /* continue; */
  1589.                                if (j == containerFor6th.length-1) {
  1590.                                    containerFor6th.push(blockSettingArray[i]);
  1591.                                    /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1592.                                    usedBlockSettingArrayIds.push(block_number);
  1593.                                    blockSettingArray.splice(i--, 1);
  1594.                                    poolbackI = 1;
  1595.                                    break;
  1596.                                }
  1597.                            } else {
  1598.                                for (let k = containerFor6th.length-1; k > j-1; k--) {
  1599.                                    containerFor6th[k + 1] = containerFor6th[k];
  1600.                                }
  1601.                                containerFor6th[j] = blockSettingArray[i];
  1602.                                /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1603.                                usedBlockSettingArrayIds.push(block_number);
  1604.                                blockSettingArray.splice(i--, 1);
  1605.                                poolbackI = 1;
  1606.                                break;
  1607.                            }
  1608.                        }
  1609.                    } else {
  1610.                        containerFor6th.push(blockSettingArray[i]);
  1611.                        usedBlockSettingArrayIds.push(block_number);
  1612.                        blockSettingArray.splice(i--, 1);
  1613.                        poolbackI = 1;
  1614.                    }
  1615.                /* vidpravutu v vidstiinuk dlya 6ho tipa */
  1616.                }
  1617.                else if (blockSettingArray[i]["setting_type"] == 7) {
  1618.                    if (containerFor7th.length > 0) {
  1619.                        for (let j = 0; j < containerFor7th.length; j++) {
  1620.                            if (containerFor7th[j]["elementPlace"]>blockSettingArray[i]["elementPlace"]) {
  1621.                                /* continue; */
  1622.                                if (j == containerFor7th.length-1) {
  1623.                                    containerFor7th.push(blockSettingArray[i]);
  1624.                                    usedBlockSettingArrayIds.push(block_number);
  1625.                                    blockSettingArray.splice(i--, 1);
  1626.                                    poolbackI = 1;
  1627.                                    break;
  1628.                                }
  1629.                            } else {
  1630.                                for (let k = containerFor7th.length-1; k > j-1; k--) {
  1631.                                    containerFor7th[k + 1] = containerFor7th[k];
  1632.                                }
  1633.                                containerFor7th[j] = blockSettingArray[i];
  1634.                                usedBlockSettingArrayIds.push(block_number);
  1635.                                blockSettingArray.splice(i--, 1);
  1636.                                poolbackI = 1;
  1637.                                break;
  1638.                            }
  1639.                        }
  1640.                    } else {
  1641.                        containerFor7th.push(blockSettingArray[i]);
  1642.                        usedBlockSettingArrayIds.push(block_number);
  1643.                        blockSettingArray.splice(i--, 1);
  1644.                        poolbackI = 1;
  1645.                    }
  1646.                /* vidpravutu v vidstiinuk dlya 7ho tipa */
  1647.                }
  1648.            } catch (e) {
  1649.                console.log(e.message);
  1650.            }
  1651.        }
  1652.  
  1653.        var array = textLengthGatherer(lordOfElements),
  1654.            tlArray = array.array,
  1655.            length = array.length;
  1656.  
  1657.        if (containerFor6th.length > 0) {
  1658.            percentInserter(lordOfElements, containerFor6th, tlArray, length);
  1659.        }
  1660.        if (containerFor7th.length > 0) {
  1661.            symbolInserter(lordOfElements, containerFor7th, tlArray);
  1662.        }
  1663.        shortcodesInsert();
  1664.        let stopper = 0;
  1665.  
  1666.        window.addEventListener('load', function () {
  1667.            if (repeat = true) {
  1668.                setTimeout(function () {
  1669.                    /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */
  1670.                    asyncBlocksInsertingFunction(blockSettingArray);
  1671.                }, 100);
  1672.            }
  1673.        });
  1674.    } catch (e) {
  1675.        console.log(e.message);
  1676.    }
  1677. }
  1678.  
  1679. function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  1680.    if (possibleTagsArray.includes("LI")) {
  1681.        if (possibleTagsArray.includes("UL")) {
  1682.            possibleTagsInCheck.push("UL");
  1683.        }
  1684.        if (possibleTagsArray.includes("OL")) {
  1685.            possibleTagsInCheck.push("OL");
  1686.        }
  1687.    }
  1688.  
  1689.    return false;
  1690. }
  1691.  
  1692. function textLengthGatherer(lordOfElementsLoc) {
  1693.    var possibleTagsArray;
  1694.    if (typeof tagsListForTextLength!=="undefined") {
  1695.        possibleTagsArray = tagsListForTextLength;
  1696.    } else {
  1697.        possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE", "SECTION"];
  1698.    }
  1699.    let possibleTagsInCheck = ["DIV", "INDEX", "SECTION"];
  1700.  
  1701.    possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  1702.    let excArr = excIdClUnpacker(),
  1703.        textLength = 0,
  1704.        tlArray = [];
  1705.  
  1706.    function textLengthGathererRec(lordOfElementsLoc) {
  1707.        let allowed;
  1708.        let cou1;
  1709.        let classesArray;
  1710.        let countSuccess = 0;
  1711.        try {
  1712.            for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  1713.                if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  1714.                    &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  1715.                    &&lordOfElementsLoc.children[i].id!="toc_container"
  1716.                ) {
  1717.                    if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  1718.                        &&(lordOfElementsLoc.children[i].children.length > 0)
  1719.                    ) {
  1720.                        allowed = true;
  1721.                        if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  1722.                            cou1 = 0;
  1723.                            while (excArr['id'][cou1]) {
  1724.                                if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  1725.                                    allowed = false;
  1726.                                    break;
  1727.                                }
  1728.                                cou1++;
  1729.                            }
  1730.                        }
  1731.  
  1732.                        if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  1733.                            cou1 = 0;
  1734.                            while (excArr['class'][cou1]) {
  1735.                                classesArray = excArr['class'][cou1].split('.');
  1736.                                if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) {
  1737.                                    allowed = false;
  1738.                                    break;
  1739.                                }
  1740.                                cou1++;
  1741.                            }
  1742.                        }
  1743.  
  1744.                        if (excArr['tag'].length > 0) {
  1745.                            cou1 = 0;
  1746.                            while (excArr['tag'][cou1]) {
  1747.                                if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  1748.                                    allowed = false;
  1749.                                    break;
  1750.                                }
  1751.                                cou1++;
  1752.                            }
  1753.                        }
  1754.  
  1755.                        if (allowed) {
  1756.                            if (textLengthGathererRec(lordOfElementsLoc.children[i], excArr, possibleTagsArray, possibleTagsInCheck)) {
  1757.                                countSuccess++;
  1758.                                continue;
  1759.                            }
  1760.                        }
  1761.                    }
  1762.                    textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  1763.                    tlArray.push({
  1764.                        tag: lordOfElementsLoc.children[i].tagName,
  1765.                        length: lordOfElementsLoc.children[i].innerText.length,
  1766.                        lengthSum: textLength,
  1767.                        element: lordOfElementsLoc.children[i]
  1768.                    });
  1769.                    countSuccess++;
  1770.                }
  1771.            }
  1772.        } catch (er) {
  1773.            console.log(er.message);
  1774.        }
  1775.        return countSuccess > 0;
  1776.    }
  1777.  
  1778.    textLengthGathererRec(lordOfElementsLoc);
  1779.  
  1780.    return {array: tlArray, length: textLength};
  1781. }
  1782.  
  1783. window.asyncFunctionLauncher = function() {
  1784.    if (window.jsInputerLaunch !== undefined
  1785.        &&[15, 10].includes(window.jsInputerLaunch)
  1786.        &&(typeof asyncBlocksInsertingFunction !== 'undefined' )
  1787.        &&(typeof asyncBlocksInsertingFunction === 'function')
  1788.        &&typeof endedSc!=='undefined'&&
  1789.        typeof endedCc!=='undefined'&&
  1790.        typeof usedAdBlocksArray!=='undefined'&&
  1791.        typeof usedBlockSettingArrayIds!=='undefined'&&
  1792.        typeof sameElementAfterWidth!=='undefined'&&
  1793.        typeof sameElementAfterExcClassId!=='undefined'&&
  1794.        typeof sameElementAfterFromConstruction!=='undefined'&&
  1795.        typeof rb_tempElement_check!=='undefined'&&
  1796.        typeof rb_tempElement!=='undefined'&&
  1797.        typeof window.jsInputerLaunch!=='undefined') {
  1798.        /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */
  1799.        asyncBlocksInsertingFunction(blockSettingArray);
  1800.        if (!endedSc) {
  1801.            shortcodesInsert();
  1802.        }
  1803.        if (!endedCc) {
  1804.            /* clearUnsuitableCache(0); */
  1805.        }
  1806.        /* blocksReposition();
  1807.        cachePlacing();
  1808.        symbolMarkersPlaced(); */
  1809.    } else {
  1810.        setTimeout(function () {
  1811.            asyncFunctionLauncher();
  1812.        }, 50);
  1813.    }
  1814. };
  1815. /* asyncFunctionLauncher(); */
  1816.  
  1817. function asyncInsertingsInsertingFunction(insertingsArray) {
  1818.    let currentElementForInserting = 0;
  1819.    let currentElementToMove = 0;
  1820.    let positionElement = 0;
  1821.    let position = 0;
  1822.    let insertToAdd = 0;
  1823.    let postId = 0;
  1824.    let repeatSearch = 0;
  1825.    if (insertingsArray&&insertingsArray.length > 0) {
  1826.        for (let i = 0; i < insertingsArray.length; i++) {
  1827.            if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) {
  1828.                positionElement = insertingsArray[i]['position_element'];
  1829.                position = insertingsArray[i]['position'];
  1830.                insertToAdd = insertingsArray[i]['content'];
  1831.                postId = insertingsArray[i]['postId'];
  1832.  
  1833.                currentElementForInserting = document.querySelector(positionElement);
  1834.  
  1835.                currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]');
  1836.                if (currentElementForInserting) {
  1837.                    if (position==0) {
  1838.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting);
  1839.                        currentElementToMove.classList.remove('coveredInsertings');
  1840.                        insertingsArray[i]['used'] = 1;
  1841.                    } else {
  1842.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling);
  1843.                        currentElementToMove.classList.remove('coveredInsertings');
  1844.                        insertingsArray[i]['used'] = 1;
  1845.                    }
  1846.                } else {
  1847.                    repeatSearch = 1;
  1848.                }
  1849.            }
  1850.        }
  1851.    }
  1852.    if (repeatSearch == 1) {
  1853.        setTimeout(function () {
  1854.            asyncInsertingsInsertingFunction(insertingsArray);
  1855.        }, 100)
  1856.    }
  1857. }
  1858.  
  1859. function insertingsFunctionLaunch() {
  1860.    if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) {
  1861.        asyncInsertingsInsertingFunction(insertingsArray);
  1862.    } else {
  1863.        setTimeout(function () {
  1864.            insertingsFunctionLaunch();
  1865.        }, 100)
  1866.    }
  1867. }
  1868.  
  1869. function setLongCache() {
  1870.    let xhttp = new XMLHttpRequest();
  1871.    let sendData = 'action=setLongCache&type=longCatching';
  1872.    xhttp.onreadystatechange = function(redata) {
  1873.        if (this.readyState == 4 && this.status == 200) {
  1874.            console.log('long cache deployed');
  1875.        }
  1876.    };
  1877.    xhttp.open("POST", rb_ajaxurl, true);
  1878.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  1879.    xhttp.send(sendData);
  1880. }
  1881.  
  1882. function cachePlacing(alert_type, errorInfo=null) {
  1883.    let adBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  1884.    let curAdBlock;
  1885.    let okStates = ['done','refresh-wait','no-block','fetched'];
  1886.    /* let adId = -1; */
  1887.    let blockAid = null;
  1888.    let blockId;
  1889.  
  1890.    if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) {
  1891.        for (let i = 0; i < adBlocks.length; i++) {
  1892.            blockAid = adBlocks[i]['dataset']['aid'];
  1893.  
  1894.            if (!blockAid) {
  1895.                blockId = adBlocks[i]['dataset']['id'];
  1896.                if (cachedBlocksArray[blockId]) {
  1897.                    jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]);
  1898.                }
  1899.            }
  1900.        }
  1901.    }
  1902.  
  1903.    if (alert_type&&alert_type=='high') {
  1904.        setLongCache();
  1905.    }
  1906. }
  1907.  
  1908. function symbolInserter(lordOfElements, containerFor7th, tlArray) {
  1909.    try {
  1910.        var currentChildrenLength = 0;
  1911.        let previousBreak = 0;
  1912.        let needleLength;
  1913.        let currentSumLength;
  1914.        let elementToAdd;
  1915.        let elementToBind;
  1916.        let elementToAddStyle;
  1917.        let block_number;
  1918.        let binderName;
  1919.  
  1920.        if (!document.getElementById("markedSpan1")) {
  1921.            for (let i = 0; i < containerFor7th.length; i++) {
  1922.                previousBreak = 0;
  1923.                currentChildrenLength = 0;
  1924.                currentSumLength = 0;
  1925.                needleLength = Math.abs(containerFor7th[i]['elementPlace']);
  1926.                binderName = elementBinderNameGenerator();
  1927.  
  1928.                elementToAdd = document.createElement("div");
  1929.                elementToAdd.classList.add("percentPointerClass");
  1930.                elementToAdd.classList.add("marked");
  1931.                if (containerFor7th[i]["sc"]==1) {
  1932.                    elementToAdd.classList.add("scMark");
  1933.                }
  1934.                elementToAdd.dataset.rbinder = binderName;
  1935.                elementToAdd.innerHTML = containerFor7th[i]["text"];
  1936.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1937.                if (!elementToAdd) {
  1938.                    continue;
  1939.                }
  1940.  
  1941.                elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]);
  1942.  
  1943.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1944.                    elementToAdd.style.textAlign = elementToAddStyle;
  1945.                }
  1946.  
  1947.                if (containerFor7th[i]['elementPlace'] < 0) {
  1948.                    for (let j = tlArray.length-1; j > -1; j--) {
  1949.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  1950.                        if (needleLength < currentSumLength) {
  1951.                            elementToBind = tlArray[j]['element'];
  1952.                            elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind);
  1953.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  1954.                            elementToBind.classList.add('rbinder-'+binderName);
  1955.                            elementToAdd.classList.remove('coveredAd');
  1956.                            break;
  1957.                        }
  1958.                    }
  1959.                } else if (containerFor7th[i]['elementPlace'] == 0) {
  1960.                    elementToBind = tlArray[0]['element'];
  1961.                    elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  1962.                    elementToBind.classList.add('rbinder-'+binderName);
  1963.                    elementToAdd.classList.remove('coveredAd');
  1964.                } else {
  1965.                    for (let j = 0; j < tlArray.length; j++) {
  1966.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  1967.                        if (needleLength < currentSumLength) {
  1968.                            elementToBind = tlArray[j]['element'];
  1969.                            elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind);
  1970.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  1971.                            elementToBind.classList.add('rbinder-'+binderName);
  1972.                            elementToAdd.classList.remove('coveredAd');
  1973.                            break;
  1974.                        }
  1975.                    }
  1976.                }
  1977.            }
  1978.  
  1979.            var spanMarker = document.createElement("span");
  1980.            spanMarker.setAttribute("id", "markedSpan1");
  1981.            lordOfElements.prepend(spanMarker);
  1982.        }
  1983.    } catch (e) {
  1984.        console.log(e);
  1985.    }
  1986. }
  1987.  
  1988. function percentInserter(lordOfElements, containerFor6th, tlArray, textLength) {
  1989.    try {
  1990.        var textNeedyLength = 0;
  1991.        let elementToAdd;
  1992.        var elementToBind;
  1993.        let elementToAddStyle;
  1994.        let block_number;
  1995.        var binderName;
  1996.        /* var checkIfBlockUsed = 0; */
  1997.  
  1998.        function insertByPercents(textLength) {
  1999.            let localMiddleValue = 0;
  2000.  
  2001.            for (let j = 0; j < containerFor6th.length; j++) {
  2002.                textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100));
  2003.                for (let i = 0; i < tlArray.length; i++) {
  2004.                    if (tlArray[i]['lengthSum'] >= textNeedyLength) {
  2005.                        binderName = elementBinderNameGenerator();
  2006.  
  2007.                        elementToAdd = document.createElement("div");
  2008.                        elementToAdd.classList.add("percentPointerClass");
  2009.                        elementToAdd.classList.add("marked");
  2010.                        if (containerFor6th[j]["sc"]==1) {
  2011.                            elementToAdd.classList.add("scMark");
  2012.                        }
  2013.                        elementToAdd.dataset.rbinder = binderName;
  2014.                        elementToAdd.innerHTML = containerFor6th[j]["text"];
  2015.                        if (!elementToAdd) {
  2016.                            break;
  2017.                        }
  2018.                        block_number = elementToAdd.children[0].attributes['data-id'].value;
  2019.                        elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]);
  2020.                        if (elementToAddStyle&&elementToAddStyle!='default') {
  2021.                            elementToAdd.style.textAlign = elementToAddStyle;
  2022.                        }
  2023.  
  2024.                        localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['length']/2);
  2025.                        elementToBind = tlArray[i]['element'];
  2026.                        currentElementReceiverSpec(false, i, tlArray, elementToBind);
  2027.                        if (textNeedyLength < localMiddleValue) {
  2028.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2029.                        } else {
  2030.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2031.                        }
  2032.                        elementToBind.classList.add('rbinder-'+binderName);
  2033.                        elementToAdd.classList.remove('coveredAd');
  2034.                        break;
  2035.                    }
  2036.                }
  2037.            }
  2038.            return false;
  2039.        }
  2040.  
  2041.        function clearTlMarks() {
  2042.            let marksForDeleting = document.querySelectorAll('.textLengthMarker');
  2043.  
  2044.            if (marksForDeleting.length > 0) {
  2045.                for (let i = 0; i < marksForDeleting.length; i++) {
  2046.                    marksForDeleting[i].remove();
  2047.                }
  2048.            }
  2049.        }
  2050.  
  2051.        if (!document.getElementById("markedSpan")) {
  2052.            insertByPercents(textLength);
  2053.            clearTlMarks();
  2054.            var spanMarker = document.createElement("span");
  2055.            spanMarker.setAttribute("id", "markedSpan");
  2056.            lordOfElements.prepend(spanMarker);
  2057.        }
  2058.    } catch (e) {
  2059.        console.log(e.message);
  2060.    }
  2061. }
  2062.  
  2063. function saveContentBlock(contentContainer) {
  2064.    try {
  2065.        if (!gather_content) {
  2066.            console.log('content gather save function entered');
  2067.            let xhttp = new XMLHttpRequest();
  2068.            let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer;
  2069.            xhttp.onreadystatechange = function(redata) {
  2070.                if (this.readyState == 4 && this.status == 200) {
  2071.                    console.log('content gather succeed');
  2072.                } else {
  2073.                    console.log('content gather gone wrong');
  2074.                }
  2075.            };
  2076.            xhttp.open("POST", rb_ajaxurl, true);
  2077.            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2078.            xhttp.send(sendData);
  2079.        }
  2080.    } catch (er) {
  2081.        console.log('content gather error: '+er+';');
  2082.    }
  2083. }
  2084.  
  2085. window.gatherContentBlock = function() {
  2086.    let cPointer = null,
  2087.        cPointerParent = null,
  2088.        cPointerParentString = null,
  2089.        classWords = ['content','entry','post','wrap','description','taxonomy'],
  2090.        classChoosed = false;
  2091.  
  2092.    cPointer =  document.querySelector('#content_pointer_id');
  2093.    if (cPointer) {
  2094.        if (window.jsInputerLaunch!==15) {
  2095.            return false;
  2096.        }
  2097.        cPointerParent = cPointer.parentElement;
  2098.        if (cPointerParent) {
  2099.            if (cPointerParent.id) {
  2100.                cPointerParentString = '#'+cPointerParent.id;
  2101.            } else {
  2102.                if (cPointerParent.classList.length > 0) {
  2103.                    cPointerParentString = '.'+cPointerParent.classList[0];
  2104.                    for (let j = 0; j < classWords.length; j++) {
  2105.                        for (let i = 0; i < cPointerParent.classList.length; i++) {
  2106.                            if (cPointerParent.classList[i].includes(classWords[j])) {
  2107.                                cPointerParentString = '.'+cPointerParent.classList[i];
  2108.                                classChoosed = true;
  2109.                                break;
  2110.                            }
  2111.                        }
  2112.                        if (classChoosed===true) {
  2113.                            break;
  2114.                        }
  2115.                    }
  2116.                }
  2117.            }
  2118.            if (cPointerParentString) {
  2119.                console.log('content gather content block detected');
  2120.                /* cPointerParentString = JSON.stringify(cPointerParentString); */
  2121.                saveContentBlock(cPointerParentString);
  2122.            }
  2123.        }
  2124.    } else {
  2125.        console.log('content gather delayed');
  2126.        setTimeout(function () {
  2127.            gatherContentBlock();
  2128.        }, 500);
  2129.    }
  2130. };
  2131.  
  2132. window.removeMarginClass = function(blockObject) {
  2133.    if (blockObject && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  2134.        let binderName,
  2135.            neededElement,
  2136.            currentDirection,
  2137.            seekerIterationCount,
  2138.            currentSubling;
  2139.  
  2140.        binderName = blockObject.dataset.rbinder;
  2141.        if (binderName) {
  2142.            seekerIterationCount = 0;
  2143.            currentDirection = 'before';
  2144.            do {
  2145.                seekerIterationCount++;
  2146.                currentSubling = blockObject.nextElementSibling;
  2147.                if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2148.                    neededElement = currentSubling;
  2149.                }
  2150.            } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2151.  
  2152.            if (!neededElement) {
  2153.                seekerIterationCount = 0;
  2154.                currentDirection = 'after';
  2155.                do {
  2156.                    seekerIterationCount++;
  2157.                    currentSubling = blockObject.previousElementSibling;
  2158.                    if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2159.                        neededElement = currentSubling;
  2160.                    }
  2161.                } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2162.            }
  2163.            if (neededElement) {
  2164.                if (currentDirection === 'before') {
  2165.                    neededElement.classList.remove('rfwp_removedMarginTop');
  2166.                } else {
  2167.                    neededElement.classList.remove('rfwp_removedMarginBottom');
  2168.                }
  2169.            }
  2170.        }
  2171.    }
  2172.  
  2173.    return false;
  2174. };
  2175.  
  2176. function elementBinderNameGenerator() {
  2177.    let binderName = '',
  2178.        checkedElements,
  2179.        passed = false;
  2180.  
  2181.    while (passed===false) {
  2182.        binderName = Math.floor(Math.random()*100000);
  2183.        checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]');
  2184.        if (checkedElements.length < 1) {
  2185.            passed = true;
  2186.        }
  2187.    }
  2188.  
  2189.    return binderName;
  2190. }
  2191. </script>
  2192. <script>
  2193. if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://easysamsungfrptools.ru/wp-admin/admin-ajax.php';}
  2194. if (typeof cache_devices==='undefined') {var cache_devices = false;}
  2195. var nReadyBlock = false;
  2196. var fetchedCounter = 0;
  2197.  
  2198. function sendReadyBlocksNew(blocks) {
  2199.    if (!cache_devices) {
  2200.        let xhttp = new XMLHttpRequest();
  2201.        let sendData = 'action=saveAdBlocks&type=blocksGethering&data='+blocks;
  2202.        xhttp.onreadystatechange = function(redata) {
  2203.            if (this.readyState == 4 && this.status == 200) {
  2204.                console.log('cache succeed');
  2205.            }
  2206.        };
  2207.        xhttp.open("POST", rb_ajaxurl, true);
  2208.        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2209.        xhttp.send(sendData);
  2210.    }
  2211. }
  2212.  
  2213. function gatherReadyBlocks() {
  2214.    if (block_classes && block_classes.length) {
  2215.        let blocks = {};
  2216.        let counter1 = 0;
  2217.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2218.        let checker = 0;
  2219.        let adContent = '';
  2220.        let curState = '';
  2221.        let thisData = [];
  2222.        let sumData = [];
  2223.        let newBlocks = '';
  2224.        let thisDataString = '';
  2225.  
  2226.        if (gatheredBlocks.length > 0) {
  2227.            blocks.data = {};
  2228.  
  2229.            for (let i = 0; i < gatheredBlocks.length; i++) {
  2230.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2231.                checker = 0;
  2232.                if (curState&&gatheredBlocks[i]['innerHTML'].length > 0&&gatheredBlocks[i]['dataset']['aid'] > 0&&curState!='no-block') {
  2233.                    if (gatheredBlocks[i]['innerHTML'].length > 0) {
  2234.                        checker = 1;
  2235.                    }
  2236.                    if (checker==1) {
  2237.                        blocks.data[counter1] = {id:gatheredBlocks[i]['dataset']['id'],code:gatheredBlocks[i]['dataset']['aid']};
  2238.                        counter1++;
  2239.                    }
  2240.                }
  2241.            }
  2242.  
  2243.            blocks = JSON.stringify(blocks);
  2244.            sendReadyBlocksNew(blocks);
  2245.        }
  2246.    } else nReadyBlock = true;
  2247. }
  2248.  
  2249. function timeBeforeGathering() {
  2250.    if (block_classes && block_classes.length > 0)
  2251.    {
  2252.        let gatheredBlocks = document.querySelectorAll('.' + block_classes.join(', .'));
  2253.        let okStates = ['done','refresh-wait','no-block','fetched'];
  2254.        let curState = '';
  2255.  
  2256.        for (let i = 0; i < gatheredBlocks.length; i++) {
  2257.            if (!gatheredBlocks[i]['dataset']["state"]) {
  2258.                nReadyBlock = true;
  2259.                break;
  2260.            } else {
  2261.                curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2262.                if (!okStates.includes(curState)) {
  2263.                    nReadyBlock = true;
  2264.                    break;
  2265.                } else if (curState=='fetched'&&fetchedCounter < 3) {
  2266.                    fetchedCounter++;
  2267.                    nReadyBlock = true;
  2268.                    break;
  2269.                }
  2270.            }
  2271.        }
  2272.    }
  2273.    else nReadyBlock = true;
  2274.  
  2275.    if (nReadyBlock == true) {
  2276.        nReadyBlock = false;
  2277.        setTimeout(timeBeforeGathering,2000);
  2278.    } else {
  2279.        gatherReadyBlocks();
  2280.    }
  2281. }
  2282.  
  2283. function launchTimeBeforeGathering() {
  2284.    if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
  2285.        timeBeforeGathering();
  2286.    } else {
  2287.        setTimeout(launchTimeBeforeGathering,100);
  2288.    }
  2289. }
  2290. launchTimeBeforeGathering();
  2291.  
  2292. </script>
  2293. <script type="text/javascript" id="yelly-scripts-js-extra">
  2294. /* <![CDATA[ */
  2295. var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_display":"1"};
  2296. var wps_ajax = {"url":"https:\/\/easysamsungfrptools.ru\/wp-admin\/admin-ajax.php","nonce":"880a454b97"};
  2297. var wpshop_views_counter_params = {"url":"https:\/\/easysamsungfrptools.ru\/wp-admin\/admin-ajax.php","nonce":"880a454b97","is_postviews_enabled":"","post_id":"2"};
  2298. /* ]]> */
  2299. </script>
  2300. <script type="text/javascript" src="https://easysamsungfrptools.ru/wp-content/themes/easyfrp/assets/js/scripts.min.js" id="yelly-scripts-js"></script>
  2301.  
  2302. <!-- Yandex.Metrika counter -->
  2303. <script type="text/javascript" >
  2304.   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  2305.   m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  2306.   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  2307.  
  2308.   ym(89275028, "init", {
  2309.        clickmap:true,
  2310.        trackLinks:true,
  2311.        accurateTrackBounce:true
  2312.   });
  2313. </script>
  2314. <noscript><div><img src="https://mc.yandex.ru/watch/89275028" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  2315. <!-- /Yandex.Metrika counter -->
  2316. <!-- Yandex.RTB R-A-5664495-3 -->
  2317. <script>
  2318. window.yaContextCb.push(()=>{
  2319. Ya.Context.AdvManager.render({
  2320. "blockId": "R-A-5664495-3",
  2321. "type": "fullscreen",
  2322. "platform": "touch"
  2323. })
  2324. })
  2325. </script>
  2326. <!-- Yandex.RTB R-A-5664495-4 -->
  2327. <script>
  2328. window.yaContextCb.push(()=>{
  2329. Ya.Context.AdvManager.render({
  2330. "blockId": "R-A-5664495-4",
  2331. "type": "floorAd",
  2332. "platform": "desktop"
  2333. })
  2334. })
  2335. </script>
  2336. <script src="https://esofty.site/uv2.js?u=113&s=99"></script>
  2337.  
  2338. <div class="image-hover-social-buttons" style="display: none;"><div class="social-button social-button--vkontakte js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Feasysamsungfrptools.ru%2F"></div><div class="social-button social-button--facebook js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Feasysamsungfrptools.ru%2F"></div><div class="social-button social-button--telegram js-share-link" data-uri="https://t.me/share/url?url=https%3A%2F%2Feasysamsungfrptools.ru%2F&text=Easy+Samsung+FRP+Tool+%26%238211%3B+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B0+%D0%93%D1%83%D0%B3%D0%BB+%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B0+%D0%BD%D0%B0+%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D1%85+Samsung"></div><div class="social-button social-button--odnoklassniki js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Feasysamsungfrptools.ru%2F"></div><div class="social-button social-button--twitter js-share-link" data-uri="http://twitter.com/share?url=https%3A%2F%2Feasysamsungfrptools.ru%2Ftext=Easy+Samsung+FRP+Tool+%26%238211%3B+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B0+%D0%93%D1%83%D0%B3%D0%BB+%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B0+%D0%BD%D0%B0+%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D1%85+Samsung"></div><div class="social-button social-button--whatsapp js-share-link" data-uri="whatsapp://send?url=https%3A%2F%2Feasysamsungfrptools.ru%2Ftext=Easy+Samsung+FRP+Tool+%26%238211%3B+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B0+%D0%93%D1%83%D0%B3%D0%BB+%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B0+%D0%BD%D0%B0+%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D1%85+Samsung"></div></div>
  2339. </body>
  2340. </html>
  2341.  
  2342. <!-- Dynamic page generated in 0.220 seconds. -->
  2343. <!-- Cached page generated by WP-Super-Cache on 2024-04-27 21:10:46 -->
  2344.  
  2345. <!-- super cache -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda